2009-09-23 91 views
1

我使用SharpZipLib建立在.NET 3.5项目目录的压缩文件,而我创造这样的存档:SharpZipLib只压缩一些目录的子目录

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

而且这不会设置文件或文件夹过滤器。

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

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

+0

它缺少哪些文件? – 2009-09-23 21:27:24

+0

更新了问题,使其更加清晰。 – 2009-09-23 21:32:00

回答

1

经过一些调试后,我发现问题 问题的原因是另一个进程在向文件添加文件时访问创建的zip文件,这导致SharpZipLib进程终止并抛出异常, zip文件只有一些文件。

欲了解更多请阅读我的How to know which processes is using a file under ASP.NET?问题。

1

几个候选条件的:

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

文件名 - 既然你没有提供任何实例(文件/目录名的,有没有办法来缩小它可能是与文件名长度,文件名中的空间,等等,等等问题