2

SharpZipLib を使用するとエラーが発生します。次のようなコードがあります

FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");

どちらが正しいようです。ただし、それを主張する ZipException が発生します

size was 0, but I expected 54

それが何を意味するのかわかりません。誰でも何らかの洞察、または何らかの API ドキュメントへのリンクを持っていますか?

4

3 に答える 3

3

問題は次のとおりであることが判明しました。特定のディレクトリ内のすべてのアイテムの .zip ファイルを作成し、その .zip ファイルをディレクトリに配置しようとしていました。どうやらこのライブラリの仕組みでは、.zip ファイルが作成され、ディレクトリがファイルごとに読み取られ、.zip ファイルに書き込まれます。.zip ファイル自体を zip に追加しようとしたときにエラーが発生しました。おそらく、その時点でファイルまたは何かへのアクセスが拒否されたため、上記のエラーが発生しました。簡単な修正は、.ZIP ファイルを別のディレクトリに作成することでした。

于 2009-10-28T17:02:07.440 に答える
1

ソース コードへのリンクと、API ドキュメントを含むヘルプ ファイルを次に示します。

于 2009-10-23T14:40:18.157 に答える
0

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;
         }
于 2019-04-16T11:25:37.563 に答える