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 作为发件人传递来解决了类似的问题。由于这是错误情况,因此我们应该停止进一步处理 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 回答