Crear GZip en C#

Los archivos comprimidos GZip (.gz) se utilizan para comprimir uno o más archivos mediante el algoritmo de compresión zip de GNU. Se usa comúnmente para la compresión de archivos en los sistemas operativos UNIX. En este artículo, aprenderá cómo comprimir archivos usando GZip (.gz) mediante programación en C#. Además, el artículo también cubrirá cómo descomprimir archivos GZip en C#.

API de C# para comprimir y descomprimir archivos usando GZip

Para comprimir y descomprimir archivos usando GZip, usaremos Aspose.ZIP for .NET. Es una API poderosa que le permite trabajar con formatos de archivo populares, incluidos ZIP, 7z, GZip, etc. Puede descargar la API o instalarla usando NuGet.

PM> Install-Package Aspose.Zip

Comprimir archivos usando GZip en C#

Los siguientes son los pasos para comprimir archivos usando GZip en C#.

El siguiente ejemplo de código muestra cómo comprimir archivos a GZip en C#.

using (GzipArchive archive = new GzipArchive())
{
    // establecer fuente
    archive.SetSource("data.bin");
    
    // crear archivo
    archive.Save("archive.gz");
}

Descomprimir un archivo GZip en C#

Los siguientes son los pasos para descomprimir un archivo GZip en C# usando Aspose.ZIP for .NET.

  • Cree un objeto de la clase GzipArchive e inicialícelo con la ruta del archivo GZip.
  • Cree un archivo para el contenido extraído utilizando el método File.Create(String).
  • Abra GZip para la extracción usando el método GZipArchive.Open().
  • Lea el contenido extraído y escríbalo en el archivo.

El siguiente ejemplo de código muestra cómo descomprimir un archivo GZip usando C#.

// cargar el archivo GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // crear un archivo
    using (var extracted = File.Create("data.bin"))
    {
        // archivo abierto
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // escribir en el archivo
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Extraiga un archivo GZip en Stream en C#

También puede extraer un archivo GZip en un objeto de flujo de memoria. Los siguientes son los pasos para realizar esta operación.

El siguiente ejemplo de código muestra cómo extraer un archivo GZip en un flujo de memoria mediante C#.

// crear un flujo de memoria
var ms = new MemoryStream();

// cargar archivo GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // extraer y copiar a flujo de memoria
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para utilizar la API sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a comprimir o descomprimir archivos usando GZip en C#. Además, ha visto cómo extraer un GZip para transmitir mediante programación. Puede explorar más sobre Aspose.ZIP for .NET usando documentación. Además, puede contactarnos para compartir sus consultas a través de nuestro foro.

Ver también