イメージビューアアプリケーションを、Zipフォルダ内の画像ファイル(Windowsエクスプローラを使用してZipファイルを参照する)を直接クリックすると開くことができます。アプリケーションは次のようになり、正しいコマンドラインで実行しているように見える:Zipアーカイブのテンポラリフォルダ内のファイルへのパスを持つUnauthorizedAccessException
"C:\myApp.exe" "C:\Users\Admin\AppData\Local\Temp\Temp1_Wallpapers.zip\Wallpaper1.jpg"
ファイルには、次のコードで読み取られている:
using (var fs = new FileStream(path, FileMode.Open))
そして例外はその行にスローされます。
例外: "C:\ Users \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg 'のパスへのアクセスが拒否されました。 (System.UnauthorizedAccessException)
System.UnauthorizedAccessExceptionがスローされました:「C:\ Users \ Admin \ AppData \ Local \ Temp \ Temp1_Wallpapers.zip \ Wallpaper1.jpg」へのアクセスが拒否されました。
これは、パスがどのように解釈されるかに問題があると考えました。途中に.zip
がありますので、これが問題になるかもしれませんが、解決方法はわかりません。
また、そのパスでファイルを直接開くだけで(ZIPフォルダエクスプローラウィンドウではなく)、同じ例外が発生します。
いいえ、読み取り専用ファイルの読み取りは許可されていませんが、読み取りに使用しているコードは過度の(読み取り/書き込み)権限を要求しています。それを修正し、エラーは消え去る。 – EricLaw
@EricLawどのようにするかについてのヒント? – user1306322
3番目のパラメータを追加してみてください:FileStreamコンストラクタに 'FileAccess.Read'を追加してください。それは愚かなことだ.Netは、デフォルトでは最も制限的な(ReadWrite)権限を持っているが、そうでなければフォーラムは「なぜ私はファイルストリームに書き込めないの? – nemec