Domanda

Da MSDN: DeflateStream Classe

DeflateStream non può essere utilizzato per comprimere i file più grandi di 4 GB.

Ci sono altre implementazioni per .NET senza il limite di 4 GB?

Nota: Ho davvero bisogno di decomprimere un file in formato GZ con i contenuti più grandi di 4 GB. Può un codice di farlo?

È stato utile?

Soluzione

Date un'occhiata a SharpZipLib . Non sono sicuro se è soggetta alla stessa limitazione, ma vale la pena dare un'occhiata.

Altri suggerimenti

A proposito, abbiamo rimosso il limite di 4 GB da DeflateStream NET 4.

C'è codice di esempio a CodeProject utilizzando la libreria 7-Zip.

La licenza è aperta, così si dovrebbe essere in grado di utilizzare questo nel progetto.

7-Zip supporta anche i file GZ.

ricercare le librerie che supportano Deflate64 (non Zip64, che è un'estensione del formato di file ZIP). Xceed Zip for .NET supporta Deflate64, e sono sicuro che gli altri fanno anche.

Avere uno sguardo intorno, sembra un sacco di persone hanno riscontrato questo problema. sistema. chiarimenti si prega IO.Compressio.DeflateStream sembra essere il più completo.

L'unica implementazione sono stato in grado di trovare che sembra superare questo problema utilizzando Zip64 è Xceed Zip for .NET .

Tuttavia, è molto costoso e non sono sicuro se sarebbe ideale per la tua.

Modifica:

Ci sembra essere un certo numero di implementazioni di Zip64 per .NET, ma non riesco a trovare qualcuno che sono liberi.

DotNetZip fa ZIP64 per NET, ed è gratuito. Ma Zip64 non è lo stesso di Deflate64.

Anche se la documentazione dice che il limite 4GB è sia per il DeflateStream e GZipStream, solo GZipStream è limitata a causa del checksum CRC32. Se non è necessario quindi utilizzare CRC32 DeflateStream.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top