来自 MSDN:DeflateStream 类
DeflateStream 不能用于压缩大于 4 GB 的文件。
.NET 还有其他没有 4 GB 限制的实现吗?
注意:我确实需要解压缩内容大于 4 GB 的 GZ 格式的文件。任何代码都可以做到这一点吗?
来自 MSDN:DeflateStream 类
DeflateStream 不能用于压缩大于 4 GB 的文件。
.NET 还有其他没有 4 GB 限制的实现吗?
注意:我确实需要解压缩内容大于 4 GB 的 GZ 格式的文件。任何代码都可以做到这一点吗?
仅供参考,我们已经从 .NET 4 中的 DeflateStream 中删除了 4 GB 限制。
看看SharpZipLib。不确定它是否受到相同的限制,但值得一看。
环顾四周,似乎很多人都遇到过这个问题。 请 System.IO.Compressio.DeflateStream 澄清似乎是最全面的。
我能够找到的唯一实现似乎通过使用 Zip64 克服了这个问题是 Xceed Zip for .NET。
但是,它非常昂贵,我不确定它是否适合您的需求。
编辑:
似乎确实有相当多的 Zip64 用于 .NET 的实现,但我找不到任何免费的。
寻找支持DEFLATE64(不是 Zip64,它是 ZIP 文件格式的扩展)的库。Xceed Zip for .NET确实支持 Deflate64,我相信其他人也支持。
DotNetZip为 .NET 提供 ZIP64,而且它是免费的。但 Zip64 与 Deflate64 不同。
尽管该文档说 DeflateStream 和 GZipStream 都有 4GB 的限制,但由于 CRC32 校验和,只有 GZipStream 受到限制。如果您不需要 CRC32,请使用 DeflateStream。