MSDNから:DeflateStreamクラス
DeflateStreamを使用して、4GBを超えるファイルを圧縮することはできません。
4 GBの制限のない.NETの他の実装はありますか?
注:4GBを超えるコンテンツを含むGZ形式のファイルを解凍する必要があります。どんなコードでもそれを行うことができますか?
MSDNから:DeflateStreamクラス
DeflateStreamを使用して、4GBを超えるファイルを圧縮することはできません。
4 GBの制限のない.NETの他の実装はありますか?
注:4GBを超えるコンテンツを含むGZ形式のファイルを解凍する必要があります。どんなコードでもそれを行うことができますか?
参考までに、.NET 4 の DeflateStream から 4 GB の制限を削除しました。
CodeProjectに 7-Zip ライブラリを使用したサンプル コードがあります。
ライセンスはオープンなので、プロジェクトでこれを使用できるはずです。
7-Zip は GZ ファイルもサポートしています。
SharpZipLibを見てください。同じ制限の対象かどうかはわかりませんが、一見の価値があります。
周りを見渡すと、多くの人がこの問題に遭遇したようです。 System.IO.Compressio.DeflateStream の説明が最も包括的なようです。
Zip64 を使用することでこの問題を解決できる唯一の実装は、 Xceed Zip for .NETです。
しかし、それは非常に高価であり、あなたのニーズに合うかどうかはわかりません.
編集:
.NET 用の Zip64 の実装はかなりあるようですが、無料のものは見つかりません。
DEFLATE64 (ZIP ファイル形式の拡張である Zip64 ではありません)をサポートするライブラリを探します。Xceed Zip for .NETは Deflate64 をサポートしており、他の製品もサポートしていると確信しています。
そのドキュメントには、4GB の制限は DeflateStream と GZipStream の両方に適用されると書かれていますが、CRC32 チェックサムのために制限されるのは GZipStream だけです。CRC32 が必要ない場合は、DeflateStream を使用してください。
DotNetZipは .NET の ZIP64 を実行し、無料です。しかし、Zip64 は Deflate64 と同じではありません。