使用 SharpZipLib 时出现错误。我的代码看起来像
FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");
这似乎是正确的。但是,我收到一个 ZipException 声称
size was 0, but I expected 54
我不知道那是什么意思。任何人都有任何见解,或某种 API 文档的链接?
使用 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 文档的帮助文件。
我通过在 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;
}