SharpZipLibの奇妙なエラー—サイズはxでしたが、yを期待していました
-
06-07-2019 - |
質問
SharpZipLibを使用するとエラーが発生します。次のようなコードがあります
FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");
どちらが正しいようです。しかし、私はそれを主張するZipExceptionを受け取ります
size was 0, but I expected 54
それが何を意味するのか分かりません。誰でも洞察、または何らかのAPIドキュメントへのリンクを持っていますか?
解決
問題は次のとおりでした。特定のディレクトリ内のすべてのアイテムの.zipファイルを作成し、その.zipファイルをディレクトリに配置しようとしていました。どうやらこのライブラリが機能するように、.zipファイルが作成され、次にディレクトリがファイルごとに読み取られ、.zipファイルに書き込まれます。 .zipファイル自体をzipに追加しようとしたときにエラーが発生しました!おそらくその時点でファイルまたは何かへのアクセスが拒否されたため、上記のエラーが発生しました。簡単な修正は、別のディレクトリに.ZIPファイルを作成することでした。
他のヒント
ここは、ソースコードへのリンクとAPIのヘルプファイルです。ドキュメント。
I ProgressHandlerイベントハンドラー内で処理し、ZIPEntryをSenderとして渡すことで同様の問題を修正しました。これはエラー状態であるため、zipファイルe.ContinueRunningをfalseに設定する必要があります。
private void ProcessFileHandler(object sender, ProgressEventArgs e)
{
ZipEntry newEntry = sender as ZipEntry;
if (newEntry != null)
{
newEntry.Size = e.Processed;
}
e.ContinueRunning = keepRunning;
return;
}
所属していません StackOverflow