如何以编程方式将目录压缩为zip文件
问题描述:
我想将可以将任意数量的子目录压缩成一个ZIP文件的整个目录。如何以编程方式将目录压缩为zip文件
我能够以编程方式将单个文件压缩为zip文件。
要压缩整个目录,我可以想到一个遍历每个子目录并压缩它的递归程序。
但是有没有简单的方法来使用类似的代码压缩整个文件夹,而不必编写任何递归函数?
答
使用DotNetZip,有一个AddDirectory ()方法在ZipFile类上做你想做的事:
using (var zip = new Ionic.Zip.ZipFile())
{
zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
zip.Save("MyFile.zip");
}
这个例子和其他很多,都是available on codeplex。
答
ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true);
DotNetZip不适用于生产。它包含一些重要的错误。我已经忘记了究竟是什么,但是我经过长时间的调查后得出结论,在目前的状态下,这绝对是不可靠的。 – SerG 2015-03-23 14:25:38