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#.
- .NET API para comprimir y descomprimir archivos usando GZip
- Comprimir archivos usando GZip en C#
- Descomprimir un archivo GZip en C#
- Extraiga un archivo GZip en Stream 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#.
- Crea un objeto de la clase GzipArchive.
- Use el método GzipArchive.SetSource(String) para agregar un archivo al archivo.
- Cree un archivo GZip utilizando el método GzipArchive.Save(String).
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.
- Cree un nuevo objeto MemoryStream.
- Cree un objeto de la clase GzipArchive e inicialícelo con la ruta del archivo GZip.
- Extraiga GZip y cópielo en el flujo de memoria utilizando el método GZipArchive.Open().CopyTo(MemoryStream).
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.