c# - example - vb net compress files zip
LĂmite DeflateStream 4GB en.NET (7)
Eche un vistazo a SharpZipLib . No estoy seguro si está sujeto a la misma limitación, pero vale la pena echarle un vistazo.
Desde MSDN: clase DeflateStream
DeflateStream no se puede usar para comprimir archivos de más de 4 GB.
¿Hay otras implementaciones para .NET sin el límite de 4 GB?
NOTA: Realmente necesito descomprimir un archivo en formato GZ con contenido de más de 4 GB. ¿Puede algún código hacer eso?
Busque bibliotecas que admitan DEFLATE64 (no Zip64, que es una extensión del formato de archivo ZIP). Xceed Zip para .NET admite Deflate64, y estoy seguro de que otros también lo hacen.
FYI, hemos eliminado el límite de 4 GB de DeflateStream en .NET 4.
DotNetZip hace ZIP64 para .NET, y es gratis. Pero Zip64 no es lo mismo que Deflate64.
Aunque esa documentación dice que la limitación de 4 GB es tanto para DeflateStream como para GZipStream, solo GZipStream está limitado debido a la suma de comprobación CRC32. Si no necesita CRC32, use DeflateStream.
Al echar un vistazo, parece que muchas personas se han encontrado con este problema. Las aclaraciones de System.IO.Compressio.DeflateStream parecen ser las más completas.
La única implementación que pude encontrar que parece superar este problema utilizando Zip64 es Xceed Zip para .NET .
Sin embargo, es muy costoso y no estoy seguro si satisfaría sus necesidades.
Editar:
Parece haber bastantes implementaciones de Zip64 para .NET, pero no puedo encontrar ninguna que sea gratuita.
Hay código de muestra en CodeProject usando la biblioteca 7-Zip.
La licencia está abierta, por lo que debería poder usar esto en su proyecto.
7-Zip también es compatible con archivos GZ.