.NET的开源zip库?

时间:2008-12-17 12:28:59

标签: .net open-source zip

有没有人知道.NET的开源压缩库?

7 个答案:

答案 0 :(得分:35)

SharpZipLib

关于内部gzip实现的评论和其他帖子,它们相同! GZip不会创建归档所需的标头;它仅对“压缩”一个文件或流有用。

正确的zip存档包含一个标题,列出所有压缩文件以及它们来自压缩数据的位置,因此您需要一些标题。这意味着SharpZipLib,许多商业版本之一,或使用像7zip这样的.NET绑定外部的东西。

有人想说的话:“但我一直在Linux中看到.gz个文件!” - 它们只是单个文件,.tar.gz也不例外 - tar是存档文件。 .gz是压缩的档案。

答案 1 :(得分:25)

夫妻评论。

  1. 不要使用J#运行时。 J#已经停止使用。未来的支持是值得怀疑的。此外,当你想要的只是ZIP支持时,整个J#运行时是一个很大的难题。
  2. System.IO.Compression中的GzipStream是.NET 2.0以来.NET基类库的一部分,它为IETF RFC-1952压缩提供了一个流接口。虽然压缩比不是最佳的,但它可以很好地进行压缩,并且它将显着扩展先前压缩的数据。这bug was reported to Microsoft, but it's apparently been closed。还有一个类似的DeflateStream,但适用于RFC 1951。有一种常见的误解,即GZipStream会执行zip文件。不对。 这两个都没有拉链文件。
  3. 有System.IO.Packaging.ZipPackage。它可以工作,但主要用于打包MS Office 2007(.docx,.xslx和.pptx)文件。它对于zip文件来说不实用,并且不支持许多ZIP功能,例如加密。
  4. 如果您想要一种灵活的方式在.NET中创建和读取zip文件,那么您目前需要第三方库。
  5. DotNetZip是一个很好的第三方选项。免费,开源,积极维护,易于使用,小巧,良好的功能集。它作为单个程序集发布 - 它是完全托管的代码。适用于Compact Framework以及常规.NET Framework。 pre-req是.NET 2.0。

    DotNetZip还包括一个ZLIB库,其中包含{Zlib,GZip,Deflate} Stream等类。它们与.NET内置的可比,但它们包括设置压缩级别的能力,在更高级别,它们比内置类更有效地压缩。 ZlibStream执行RFC 1950压缩。

    DotNetZip可以处理ZIP64,密码,AES加密,流,SFX和Unicode。使用它的每个人都说它比SharpZipLib更简单。有一个很好的帮助文件(.chm)和许多代码示例。

    DNZ CHM http://i27.tinypic.com/2nl8fwk.jpg

答案 2 :(得分:11)

DotNet Zip Library(Ionic.Zip.dll)非常易于使用。我觉得它比SharpZip更容易实现。

http://www.codeplex.com/DotNetZip

答案 3 :(得分:9)

尝试查看7-zip。这是开源和我喜欢的zip程序。很纠结。也充分利用了多核。

.NET SDK可用here

答案 4 :(得分:8)

****但是.NET .NET已经支持开源zip .... ****

http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx

这与GZIP库兼容。我用它来压缩c#数据并在C ++应用程序中通过网络解压缩。工作正常。

答案 5 :(得分:2)

如果您希望{C}使用here,请查看7-zip。这是SO的另一篇文章中的一个问题。这可能会对你有所帮助。

答案 6 :(得分:-1)

你也可以查看J#redist。它重新实现了java.util.zip。 Article