如何使用c#解压缩文件

本文关键字:文件 解压缩 何使用 | 更新日期: 2023-09-27 18:01:54

如何使用c#解压缩文件?我发现我必须使用第三方库。有什么直接的方法吗?

如何使用c#解压缩文件

System.IO.Packaging命名空间包含一些压缩类,如zipppackage,但它们绝不像使用第三方库那么简单。我强烈建议您考虑使用第三方库。

您可以使用框架的工具进行压缩,然后解压缩

. net网上有很多压缩库,有些是免费的,有些是商业的。一个伟大的免费库是#Zip,或者是免费c# IDE的创建者#develop。

。. NET Framework 2.0引入了GZipStream和DeflateStream类来压缩和解压流。以下是MSDN上的链接:

http://msdn2.microsoft.com/en-us/library/system.io.compression.gzipstream (VS.80) . aspx

http://msdn2.microsoft.com/en-US/library/system.io.compression.deflatestream (VS.80) . aspx

您在找http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx吗?

我很幸运地使用了Codeplex的免费图标Zip。它的拉链和拉链都非常快,工作效果很好,而且尺寸很小。

。. NET 4.5有一个更有用的ZipPackage类

http://msdn.microsoft.com/en-us/library/system.io.packaging.zippackage.aspx

它仍然不是很容易使用,类文档中的示例代码相当长。

对于zip文件,DotNetZip工作很好。支持zip文件只需要一个程序集。

对于gzip文件,您可以使用System.IO.Compression命名空间中的流,或者DotNetZip。请注意,如果您有*.tar.gz*.tgz文件,您还需要一些表示tar(1)或tar(5)的文件。

对于zlib压缩数据,DotNetZip再次成为您的朋友。zlib使用Deflate算法。我不确定zlib6和System.IO.Compression.DeflateStream是否兼容。

还有其他支持这些压缩格式的库,但我相信它们中的许多都是对非托管代码的包装。这是好是坏取决于你的需求。

DotNetZip是纯托管代码。我的测试表明,它的运行速度与Info-Zip的开源压缩/解压缩实现大致相同。生成的压缩文件不是字节相同的,但它们是兼容的,并且具有大致相同的压缩比。


编辑注: DotNetZip曾经生活在Codeplex。Codeplex已关闭。旧的存档文件在Codeplex上仍然可用。看起来代码已经迁移到Github:

  • https://github.com/DinoChiesa/DotNetZip。看起来是原作者的repo。
  • https://github.com/haf/DotNetZip.Semverd。这看起来是当前维护的版本。它也可以通过Nuget在https://www.nuget.org/packages/DotNetZip/
  • 获得。