.NET中的DeflateStream 4GB限制

时间:2009-02-02 22:19:48

标签: c# .net compression gzip

来自MSDN: DeflateStream Class

DeflateStream不能用于压缩大于4 GB的文件。

对于没有4 GB限制的.NET,还有其他任何实现吗?

注意:我确实需要解压缩GZ格式的文件,内容大于4 GB。任何代码都可以这样做吗?

7 个答案:

答案 0 :(得分:8)

仅供参考,我们已从.NET 4中的DeflateStream中删除了4 GB的限制。

答案 1 :(得分:7)

使用7-Zip库sample code at CodeProject

许可证已打开,因此您应该可以在项目中使用它。

7-Zip还支持GZ文件。

答案 2 :(得分:2)

看看SharpZipLib。不确定它是否受到同样的限制,但值得一看。

答案 3 :(得分:1)

环顾四周,似乎很多人都遇到过这个问题。 System.IO.Compressio.DeflateStream clarifications please 似乎是最全面的。

我能够找到的唯一实现似乎是通过使用Zip64克服了这个问题 Xceed Zip for .NET

然而,它非常昂贵,我不确定它是否符合您的需求。

编辑:

似乎有很多Zip64 for .NET的实现,但我找不到任何免费的。

答案 4 :(得分:1)

寻找支持 DEFLATE64 的库(不是Zip64,这是ZIP文件格式的扩展)。 Xceed Zip for .NET确实支持Deflate64,我相信其他人也会这样做。

答案 5 :(得分:0)

DotNetZip执行ZIP64 for .NET,它是免费的。但Zip64与Deflate64不同。

答案 6 :(得分:0)

虽然该文档说DeflateStream和GZipStream的4GB限制,但由于CRC32校验和,只有GZipStream受限。如果您不需要CRC32,请使用DeflateStream。