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的帮助文件文档。
我通过在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