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

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

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

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

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

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

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

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

看看其中一个API:

  • DotNetZip
  • SharpZipLib
 ZipFile.CreateFromDirectory(, , CompressionLevel.Fastest, true); 

您可以使用C#查看有关Zip / Unzip文件夹和文件的文章 。