如何在C#中提取ZIP文件

如何使用C#提取ZIP文件?

DotNetZip :

用于操作zip文件的类库和工具集。 使用VB,C#或任何.NET语言轻松创建,提取或更新zip文件……

DotNetZip适用于具有完整.NET Framework的PC,也可以在使用.NET Compact Framework的移动设备上运行。 使用VB,C#或任何.NET语言或任何脚本环境创建和读取zip文件。 DotNetZip支持以下场景:

  • 一个动态创建zip文件的Silverlight应用程序。
  • 一个ASP.NET应用程序,可动态创建ZIP文件并允许浏览器下载它们
  • Windows服务,定期压缩目录以进行备份和存档
  • 修改现有存档的WPF程序 – 重命名条目,从存档中删除条目或向存档添加新条目
  • 一个Windows窗体应用程序,用于创建AES加密的zip存档,以保护存档内容的隐私。
  • 解压缩或拉链的SSIS脚本
  • PowerShell或VBScript中的管理脚本,用于执行备份和归档。
  • 接收zip文件作为附件的WCF服务,并将zip动态解压缩到流中以进行分析
  • 一个老式的ASP(VBScript)应用程序,它通过COM接口为DotNetZIp生成一个ZIP文件
  • 用于读取或更新ODS文件的Windows窗体应用程序
  • 从流内容创建zip文件,保存到流,提取到流,从流中读取
  • 创建自解压档案。

如果您想要的是更好的DeflateStream或GZipStream类来替换.NET BCL中内置的那个,DotNetZip也有。 DotNetZip的DeflateStream和GZipStream在基于Zlib的.NET端口的独立程序集中提供。 这些流支持压缩级别,并提供比内置类更好的性能。 还有一个ZlibStream来完成这个集合(RFC 1950,1951,1952)……

玩得开心

在.NET Framework 4.5及更高版本中

using System; using System.IO; using System.IO.Compression; namespace ConsoleApplication { class Program { static void Main(string[] args) { string startPath = @"c:\example\start"; string zipPath = @"c:\example\result.zip"; string extractPath = @"c:\example\extract"; ZipFile.CreateFromDirectory(startPath, zipPath); ZipFile.ExtractToDirectory(zipPath, extractPath); } } } 

我建议使用#ziplib库: http : //www.icsharpcode.net/opensource/sharpziplib/
它的免费和开源。