我遇到了一个奇怪的问题,使用ZipFile和ZipArchive的.Net 4.5。阅读带有空子目录的压缩文件夹导致问题
ZipFile.CreateFromDirectory获取目录的所有内容,包括空的文件夹。 如果我尝试使用Windows资源管理器通过右键单击>发送到>压缩文件夹创建相同的压缩文件,我收到一条警告消息,指出空文件夹被省略。
我正在将生成的zip文件加载到在Apache Tomcat上运行的应用程序中。此应用程序会为ZipFile.CreateFromDirectory生成的zip文件中包含的每个文件引发错误。我通过Windows资源管理器手动创建的zip文件被读取得很好。
我怀疑问题在于空的压缩文件夹,但还没有能够明确地得出结论。如果空文件夹是原因,我需要一种方法来使用ZipFile.CreateFromDirectory排除空文件夹。
我没有.NET 4.5,但是从[备注部分](http://msdn.microsoft.com/en-us/library/hh485721(V = vs.110)的.aspx):_ “文件系统中的目录结构保存在归档中,如果该目录为空,则会创建一个空归档。”_所以这是设计。您必须在tomcat上的应用程序中修复它,或者如果可能的话,您必须创建一个临时文件夹,其中只包含非空文件夹。我还没有找到一种方法来排除'CreateFromDirectory'中的空文件夹。 – 2014-09-22 14:00:12
谢谢蒂姆。通过温度压缩似乎是一个可行的解决方案。如果你把这个作为答案,我可以接受它。 – 2014-09-22 14:21:08