.NET中的DeflateStream 4GB限制

来自MSDN: DeflateStream类

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

没有4 GB限制的.NET是否还有其他实现?

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

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

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

CodeProject上有使用7-Zip库的示例代码 。

许可证是开放的,因此您应该能够在项目中使用它。

7-Zip还支持GZ文件。

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

看看周围,似乎很多人都遇到过这个问题。 System.IO.Compressio.DeflateStream澄清请似乎是最全面的。

我能够找到的唯一一个通过使用Zip64来解决这个问题的实现是Xceed Zip for .NET

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

编辑:

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

DotNetZip适用于.NET的ZIP64 ,它是免费的。 但Zip64与Deflate64不同。

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