Sto cercando di far funzionare l'app visualizzatore di immagini con i file che vengono aperti facendo clic su un file di immagine direttamente all'interno di una cartella Zip (utilizzando Windows Explorer per sfogliare i file Zip). L'applicazione sembra essere gestito con la riga di comando corretta, che assomiglia a questo:UnauthorizedAccessException con percorso al file nella cartella temp dall'archivio Zip
"C:\myApp.exe" "C:\Users\Admin\AppData\Local\Temp\Temp1_Wallpapers.zip\Wallpaper1.jpg"
Il file viene letto con il seguente codice:
using (var fs = new FileStream(path, FileMode.Open))
E l'eccezione viene generata in quella linea:
Eccezione: generata: "Accesso al percorso" C: \ Users \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg 'negato. " (System.UnauthorizedAccessException)
È stata generata un'eccezione System.UnauthorizedAccessException: "Accesso al percorso" C: \ Users \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg "negato."
Ho pensato che questo potrebbe essere un problema con il modo in cui il percorso viene interpretato. C'è uno .zip
nel mezzo, quindi questo potrebbe essere il problema, ma non so come risolverlo.
Inoltre, l'apertura di un file direttamente in quel percorso (non tramite la finestra di esplorazione della cartella zippata) comporta la stessa eccezione.
No, la lettura di file di sola lettura non è non autorizzata, ma il codice che si sta utilizzando per leggerli richiede autorizzazioni eccessive (in lettura/scrittura). Correggilo e l'errore scompare. – EricLaw
@EricLaw qualche suggerimento su come farlo? – user1306322
Prova ad aggiungere un terzo parametro: 'FileAccess.Read' al costruttore FileStream. È piuttosto stupido che .Net vada per il permesso più restrittivo ('ReadWrite') di default, anche se suppongo che altrimenti i forum sarebbero pieni di" Perché non posso scrivere sul mio filestream!?!?! " – nemec