如何在C#中提取ZIP文件

时间:2010-11-28 13:18:36

标签: c# .net compression zip

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

3 个答案:

答案 0 :(得分:16)

在.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);
        }
    }
}

答案 1 :(得分:14)

DotNetZip

  

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

     

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

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

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

玩得开心

答案 2 :(得分:5)

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