Frage

Von msdn: Deflatestream -Klasse

Deflatestream kann nicht verwendet werden, um Dateien zu komprimieren, die größer als 4 GB sind.

Gibt es noch andere Implementierungen für .NET ohne das 4 -GB -Grenzwert?

Hinweis: Ich muss wirklich eine Datei im GZ -Format mit Inhalten von mehr als 4 GB dekomprimieren. Kann ein Code das tun?

War es hilfreich?

Lösung

Sich ansehen Shartziplib. Ich bin mir nicht sicher, ob es der gleichen Einschränkung ausgesetzt ist, aber einen Blick wert.

Andere Tipps

Zu Ihrer Information haben wir die 4 GB -Grenze von Deflatestream in .NET 4 entfernt.

Es gibt Beispielcode bei CodeProject Verwenden der 7-Zip-Bibliothek.

Die Lizenz ist geöffnet, sodass Sie dies in Ihrem Projekt verwenden können.

7-Zip unterstützt auch GZ-Dateien.

Suchen Sie nach Bibliotheken, die unterstützen Deflate64 (Nicht ZIP64, das ist eine Erweiterung des ZIP -Dateiformates). Xceed ZIP für .NET Unterstützt Deflate64 und ich bin sicher, dass es auch andere tun.

Wenn man sich umgeht, scheint es, dass viele Menschen dieses Problem gestoßen haben.System.io.comPressio.DeFlatestream Clarifications bitte scheint das umfassendste zu sein.

Die einzige Implementierung, die ich finden konnte, die dieses Problem durch die Verwendung von ZIP64 zu überwinden scheint, istXceed ZIP für .NET.

Es ist jedoch sehr teuer und ich bin mir nicht sicher, ob es Ihre Bedürfnisse erfüllen würde.

Bearbeiten:

Es scheint eine ganze Reihe von Implementierungen von ZIP64 für .NET zu geben, aber ich kann keine kostenlos finden.

Dotnetzip Macht ZIP64 für .NET und es ist kostenlos. Aber ZIP64 ist nicht dasselbe wie DeFlate64.

Obwohl diese Dokumentation besagt, dass die 4 -GB -Begrenzung sowohl für den Deflatestream als auch für Gzipstream beträgt, ist nur GZIPStream aufgrund der CRC32 -Prüfsumme begrenzt. Wenn Sie CRC32 nicht benötigen, verwenden Sie Deflatestream.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top