如何使用C#解压缩压缩文件?

时间:2011-07-13 17:30:49

标签: c# zip

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

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您可以使用框架工具压缩然后解压缩

sinxe .NET 1.x你网上有很多compession库,有些是免费的,有些是商业的。 一个很棒的免费库是#Zip,或者是免费的C#IDE的创建者,#dev。

.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

答案 2 :(得分:1)

答案 3 :(得分:1)

我从Codeplex的免费Iconic Zip中获得了好运。它可以非常快速地拉链和解压缩,效果很好并且尺寸很小。它也适用于Mono。

答案 4 :(得分:0)

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

对于 gzip 文件,您可以使用System.IO.Compression namespaceDotNetZip中的信息流。请注意,如果您有*.tar.gz*.tgz个文件,则还需要能够说tar(1)tar(5)的内容。

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

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

DotNetZip是纯托管代码。我的测试显示它的运行速度与Info-Zip's open-source zip/unzip实现的速度大致相同。生成的压缩文件不是字节相同的,但它们是兼容的并且具有大致相同的压缩比。


编辑注: DotNetZip曾经住在Codeplex。 Codeplex已关闭。旧档案仍为available at Codeplex。看起来代码已迁移到Github:


答案 5 :(得分:0)

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

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

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

相关问题