如何以编程方式将目录压缩为zip文件

时间:2010-03-23 09:02:19

标签: c# .net zip gzip

我想将一个包含任意数量子目录的整个目录压缩到一个ZIP文件中。

我能够以编程方式将单个文件压缩为zip文件。

要压缩整个目录,我可以想到一个遍历每个子目录并压缩它的递归程序。

但是有没有简单的方法使用类似的代码压缩整个文件夹,而不必编写任何递归函数?

4 个答案:

答案 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)