6

来自 MSDN:DeflateStream 类

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

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

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

4

7 回答 7

8

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

于 2009-02-03T03:02:30.697 回答
7

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

许可证是开放的,所以你应该可以在你的项目中使用它。

7-Zip 也支持 GZ 文件。

于 2009-02-02T22:38:39.353 回答
2

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

于 2009-02-02T22:53:09.590 回答
1

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

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

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

编辑:

似乎确实有相当多的 Zip64 用于 .NET 的实现,但我找不到任何免费的。

于 2009-02-02T22:32:46.527 回答
1

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

于 2009-02-03T02:51:23.650 回答
0

DotNetZip为 .NET 提供 ZIP64,而且它是免费的。但 Zip64 与 Deflate64 不同。

于 2009-03-05T09:29:32.403 回答
0

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

于 2009-06-02T12:36:12.137 回答