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

ash*_*rya 16 .net c# zip gzip

我想压缩整个目录,该目录可以包含任意数量的子目录到一个ZIP文件中.

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

为了压缩整个目录,我可以想到一个遍历每个子目录并对其进行压缩的递归程序.

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

Che*_*eso 22

使用DotNetZip,ZipFile类上有一个AddDirectory()方法,可以执行您想要的操作:

using (var zip = new Ionic.Zip.ZipFile())
{
    zip.AddDirectory("DirectoryOnDisk", "rootInZipFile");
    zip.Save("MyFile.zip");
}
Run Code Online (Sandbox Code Playgroud)

codeplex提供了此示例以及许多其他示例.


小智 5

看看其中一个API:


Bib*_*yay 5

ZipFile.CreateFromDirectory(<path of folder you need to zip>, <path of zip file with .zip in the end>, CompressionLevel.Fastest, true);
Run Code Online (Sandbox Code Playgroud)