Announcement

Collapse
No announcement yet.

FSO funktionier unter Win7 nicht mehr!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FSO funktionier unter Win7 nicht mehr!?

    FSO funktionier unter Win7 nicht mehr!?

    Hi,

    ich habe hier ein seltsames Problem:
    Ich verwende file scripting runtime um auf Dateien in einem Ordner zuzugreifen. Dies funktioniert unter XP ohne Probleme. Unter Win7 dagegen liefert mir fso.FolderExists(sDir) = True obwohl das Verzeichnis nicht exsistiert.

    Hier der Code um dies auszuprobieren:
    Code:
    Dim fso as FileSystemObject
    Dim f as Folder
    Dim sDir as String
    sDir = "C:\Program Files\MyAppl\Client_Data\Documents\"
    Set fso = CreateObject("Scripting.FileSystemObject")
    if fso.FolderExists(sDir) then
      'Verzeichnis exsistiert!
    Else
      fso.CreateFolder sDir
    end if
    Set f = fso.GetFolder(sDir)
    Das Verzeichnis C:\Program Files\MyAppl\Client_Data\ exsistiert. Das Unterverzeichnis „Documents“ exsistiert aber nicht. Wenn ich den Code oben ausführe erhalte ich eine Fehlermeldung in der letzten Zeile = „Type mismatch“.
    Beim ausführen der Zeile „fso.CreateFolder sDir“ bekomme ich die Fehlermeldung „File already exists“

    Ein Versuch das Verzeichnis zu löschen (FSO.DeleteFolder sDir) liefert „Path not found“.
    Ein Versuch das Verzeichnis als Datei zu löschen (FSO.DeleteFile sDir) liefert „File not found“.

    Ich habe im Dateiexplorer und mit der DOS-Box (Admin-modus) im Verzeichnis nachgeschaut: Das Verzeichnis exsistiert nicht! Ich habe in der DOS-Box das Verzeichnis auch erstellen können.
    Alle Versteckte Dateien und Ordner werden bei mir im Explorer angezeigt.

    Unter XP funktioniert dies aber ohne Probleme.

    Kann das jemand reproduzieren?

    Danke.

  • #2
    Darf man denn unter W7 noch so einfach unter C:\Program Files herumschreiben?
    Ich tippe mal auf ein Rechteproblem (aber nur SEHR ausm Bauch heraus..)

    Tino
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      Schau mal ob du deinen Ordner in deinem Profilordner unterhalb von
      "AppData\Local\VirtualStore\Program Files\MyAppl\"
      findest.

      Da man als normaler User nicht in "Program Files" rumschreiben darf wird der Zugriff in den Profilordner des aktuellen Users umgelenkt. Für Details schau dir in der Hilfe/Msdn die 'File Virtualization' an.

      Comment


      • #4
        Danke für die Hinweise.

        Es ist richtig, ich habe das Verzeichnis in „C:\Users\Benutzername\AppData\Local\VirtualStore\ Program Files\MyApp\Client_Data“ gefunden.
        Damit hab ich nun ein Problem. Die Anwendung die ich für Win7 fit machen soll ist bereits älter als 10 Jahre.

        Wenn ich mich auf die Rückgabewerte von FSO verlasse bekomme ich eine Fehlermeldung, wenn ich wie im Beispiel oben versuche auf das Verzeichnis zuzugreifen.
        Gibt es eine Möglichkeit FSO oder ein anderes Objekt dazu zu bringen, dass ich nur auf tatsächliche Verzeichnisse zugreife?
        Ich habe Temporäre-Dateien die allen Nutzern zur Verfügung stehen sollen und nicht für jeden Nutzer erneut vom Server geladen werden sollen. Daher ist das Benutzerverzeichnis zum ablegen dieser Daten ungeeignet.
        Die Anwendung besitzt eigene OCX, DLL-Dateien. Da das Systemverzeichnis „System32“ ebenfalls davon betroffen ist müssten auch hier die Dateien für jeden Nutzer erneut installiert werden.
        Kann mir jemand sagen wie ich dieses Problem lösen kann?
        Die Angaben unter http://support.microsoft.com/kb/927387/de (Szenario 2) sind jedenfalls nicht hilfreich.

        Danke

        Comment


        • #5
          Du könntest versuchen deiner Anwendung eine Vista-Kompatibles Manifest zu verpassen das die virtualisierung des Dateisystems für deinen Prozess deaktiviert.

          Comment

          Working...
          X