如何在C#中提取ZIP文件

sar*_*i k 9 .net c# compression zip

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

Ana*_*mer 17

在.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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 参考:System.IO.Compression.FileSystem (2认同)

Bli*_*awn 14

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)......

玩得开心


bas*_*rat 5

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