1

我正在使用 SharpZipLib 在 .NET 3.5 项目中创建目录的 zip 文件,并且我正在创建这样的存档:

fastZip.CreateZip(Server.MapPath(zipToPath), Server.MapPath(zipFromPath), true, null);  

这并没有设置文件或文件夹过滤器。

问题是结果 zip 文件只有该目录中的一些子目录,而不是所有子目录,比如我要压缩的目录有 3 个子目录,生成的 zip 文件只有其中一个。

任何想法为什么会发生这种情况?

4

2 回答 2

1

有几种可能:

权限- 由于您使用的是 Server.MapPath(),我假设这是一个网站。在部分信任的环境中,网站代码的权限很少,并且库可能会吞下 zip 过程中发生的任何权限错误。

文件名- 可能是文件名长度、文件名中的空格等问题。由于您没有提供任何示例(文件/目录名称,因此无法缩小范围。

于 2009-09-24T04:30:47.003 回答
1

经过一番调试,我发现了问题。问题的原因是另一个进程在向其添加文件期间正在访问创建的 zip 文件,这导致 SharpZipLib 进程终止并引发异常,只留下创建的 zip 文件中的一些文件。

有关更多信息,请阅读我的如何知道哪些进程正在使用 ASP.NET 下的文件?问题。

于 2009-09-24T11:36:06.060 回答