Vista sperrt Dateisystemzugriff

codeman

Erfahrenes Mitglied
Hallo!

Ich arbeite gerade an einem .Net Projekt, dass ziemlich viele Text-Dateien abspeichert und auch den Temp-Ordner des Systems verwendet.

Mein Problem: Unter XP (mit welchem ich Arbeite) funktioniert alles, nur unter Vista gibt's einige Probleme. Dazu kommt, dass ich selbst kein Vista zum Greifen hab und an den Rechner zum Testen komme ich nur selten dran bzw. läuft dort kein Debugger um der Sache auf die Spur zu kommen.

Vista erlaubt mir scheinbar (1.) das Speichern/Lesen (?) von Textdateien im Anwendungsordner nicht und (2.) das Verwenden des Temp-Folders des Systems um dort eine Zip-Datei zu entpacken.

Vielleicht hat jemand Erfahrung gemacht oder weiß sogar wie man diese "Sperre" Umgehen kann.

Danke im Voraus,
codeman
 
Das erlaubt Vista definitiv. Ich hab das hier bei mir mal schnell ausprobiert, da geht. Ich hab keine Ahnung, was bei dir falsch sein könnte. Auch ein eingeschränktes Benutzerkonto auf dem Vista-Test-PC sollte eigentlich nicht solche Probleme verursachen können.
Wenn du Lust hast, darfst du mir gerne einen Link zu deinem Projekt geben, ich werds mal schnell testen :).
 
Hallo!

Normalerweise darftst du unter Vista _nicht_ im Anwendungsordner speichern, was auch richtig ist. Der Ordner wird (solange in der Manifest-Datei der Anwendung nichts anderes steht) virtualisiert. In dem Ordner "Roaming" im Benutzerordner (C:\users\benutzername\App Data\Roaming) solltest du die Dateien finden. Ist in der Manifest-Datei ein execution-level angegeben, versucht die Anwendung in den "echten" Ordner zu schreiben, was mangels Rechten fehl schlägt.
So viel zum Anwendungsordner. Versuche einfach nicht in den Anwendungsordner, sondern in den Benutzerordner zu schreiben.
Mit dem System-Temp-Folder wird es ähnlich sein. Probier den Temp-Ordner des Benutzers zu verwenden.
 
Ich bin jetzt davon ausgegangen, dass der mit "Temp-Ordner des Systems" "%temp%" meint, und das zeigt ja auf den Benutzer-Temp-Ordner.

Das andere kommt darauf an, wo der Anwendungsordner liegt. Wenn ich den jetzt bei mir auf dem Desktop liegen habe, dann darf das Programm sehr wohl darin Dateien erstellen.
 
Dann sind wir beide von etwas ausgegangen, was nicht unbedingt stimmen muss ;-)

Also bitte noch mal die Definition der Ordner. Welcher Temp-Ordner ist gemeint (C:\windows\temp\ oder C:\users\benutzername\local\temp\) und liegt der Programme-Ordner in c:\program files (beides Vista)?
 
Hallo!

Erstmal Danke für die Bemühungen.

Den Temp-Ordner stelle ich im .Net-Code so fest:
"My.Computer.FileSystem.SpecialDirectories.Temp" - also auch bei Vista wahrscheinlich der System-Temp-Ordener, denke ich.
Aber es ist mir im grunde egal welcher Temp - also müsste der vom Benutzer auch reichen.

Beim Anwendungsordner ist die Frage wo der Benutzer das Programm hinkopiert. Aber wharscheinlich - wie ihr sagtet - unter "c:\program files".

codeman
 

Neue Beiträge

Zurück