我想将一个包含任意数量子目录的整个目录压缩到一个ZIP文件中。
我能够以编程方式将单个文件压缩为zip文件。
要压缩整个目录,我可以想到一个遍历每个子目录并压缩它的递归程序。
但是有没有简单的方法使用类似的代码压缩整个文件夹,而不必编写任何递归函数?
答案 0 :(得分:21)
使用DotNetZip,ZipFile类上有一个AddDirectory()方法可以执行您想要的操作:
using (var zip = new Ionic.Zip.ZipFile())
{
zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
zip.Save("MyFile.zip");
}
此示例以及许多其他示例均为available on codeplex。
答案 1 :(得分:5)
看看其中一个API:
答案 2 :(得分:5)
ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true);
答案 3 :(得分:2)