4

ASP.NET アプリケーションで DotNetZip ライブラリを使用して zip ファイルを作成し、保存しようとしています。しかし、何らかの理由で私は

パスへのアクセスが拒否されました

保存しようとするとエラー。

を別のフォルダーに変更し、TempFileFolderアクセス許可を与えました。まだ運がありません。

Dim zipFile As New ZipFile()
zipFile.AddFile(filePath)
Dim tempFilePath As String = "Report.zip"
zipFile.TempFileFolder = "D:\Temp\"
zipFile.Save(tempFilePath);

質問を見つけましたが、答えは役に立ちませんでした。

上記の質問から、1つの回答が言及されました:

また、あなたの例の tempFilePath にはフルパスが含まれていません.ZIPをあなたが期待している(そしてアクセス許可を割り当てられている)ものとは別のフォルダーに保存しようとしている可能性がありますか?

TempFileFolderとして言及したにもかかわらず、保存しようとしているフォルダーを特定する方法はD:\temp\?

何かご意見は?

4

2 に答える 2

4

「アクセス許可を与えた」と言ったので、ASP.NET を実行するアカウントと IIS プロセス ファイルの読み取り/書き込みアクセス許可を、このファイルを保存しようとしているフォルダーに提供したと仮定しています。

「一時ファイル フォルダー」は、その名前が示すとおり、一時ファイル フォルダーです。ライブラリが何らかのファイル I/O を実行する必要がある場合に備えて、これは保持場所です。ベースファイルではありません。

ファイルを保存するための完全修飾パス名を指定するようにコードを変更します。

Dim zipFile As New ZipFile()
zipFile.AddFile(filePath)
Dim tempFilePath As String = "D:\Temp\Report.zip"
zipFile.TempFileFolder = "D:\Temp\"
zipFile.Save(tempFilePath)
于 2011-11-10T06:53:01.767 に答える