Ich versuche, meine Bildbetrachter-App arbeiten mit Dateien, die durch Klicken auf eine Bilddatei direkt in einem Zip-Ordner geöffnet werden (mit Windows Explorer Zip-Dateien durchsuchen). Die Anwendung scheint mit dem richtigen Befehlszeile ausgeführt werden, die wie folgt aussieht:UnauthorizedAccessException mit Pfad zur Datei in Temp-Ordner aus Zip-Archiv
"C:\myApp.exe" "C:\Users\Admin\AppData\Local\Temp\Temp1_Wallpapers.zip\Wallpaper1.jpg"
Die Datei mit dem folgenden Code gelesen wird:
using (var fs = new FileStream(path, FileMode.Open))
Und die Ausnahme zu dieser Linie geworfen:
Ausnahme: Geworfen: "Zugriff auf den Pfad 'C: \ Benutzer \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg' wird verweigert." (System.UnauthorizedAccessException)
Eine System.UnauthorizedAccessException wurde ausgelöst: "Zugriff auf den Pfad 'C: \ Benutzer \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg' wird verweigert."
Ich dachte, dies könnte ein Problem sein, wie der Pfad interpretiert wird. Da ist ein .zip
in der Mitte, also könnte das das Problem sein, aber ich weiß nicht, wie ich das lösen soll.
Auch das einfache Öffnen einer Datei in diesem Pfad direkt (nicht durch gezippte Ordner Explorer-Fenster) führt zu der gleichen Ausnahme.
Nein, das Lesen von schreibgeschützten Dateien ist nicht unberechtigt, aber der Code, mit dem Sie sie lesen, verlangt nach übermäßigen (Lese-/Schreib-) Berechtigungen. Fix das und der Fehler verschwindet. – EricLaw
@EricLaw irgendwelche Hinweise, wie man das macht? – user1306322
Versuchen Sie, einen dritten Parameter hinzuzufügen: 'FileAccess.Read' zum FileStream-Konstruktor. Es ist irgendwie albern, dass .Net die restriktivste ('ReadWrite') Berechtigung standardmäßig wählt, obwohl ich denke, ansonsten wären die Foren voll von" Warum kann ich nicht in meinen Filestream schreiben!?!?! " – nemec