Trabajar con archivos GZip
Descripción general
Aspose.ZIP para .NET API le permite crear y administrar archivos GZip en sus aplicaciones sin la necesidad de otras aplicaciones de terceros. La API Aspose.ZIP proporciona la clase GZipArchive para trabajar con archivos GZip. Esta clase proporciona varios métodos para realizar operaciones en archivos.
El algoritmo de compresión Gzip se basa en el algoritmo DEFLATE, que es una combinación de codificación LZ77 y Huffman.
Comprimir un archivo
El siguiente ejemplo de código muestra cómo comprimir un archivo usando la instancia de GZipArchive.
1 using (GzipArchive archive = new GzipArchive())
2 {
3 archive.SetSource(dataDir + "data.bin");
4 archive.Save(dataDir + "archive.gz");
5 }
Abrir archivo GZIP
El siguiente ejemplo de código muestra cómo abrir un archivo GZip.
1 //Extracts the archive and copies extracted content to file stream.
2 using (var archive = new GzipArchive(dataDir + "archive.gz"))
3 {
4 using (var extracted = File.Create(dataDir + "data.bin"))
5 {
6 var unpacked = archive.Open();
7 byte[] b = new byte[8192];
8 int bytesRead;
9 while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
10 extracted.Write(b, 0, bytesRead);
11 }
12 }
Extraer al flujo de memoria
El siguiente ejemplo de código muestra cómo abrir un archivo de una secuencia y extraerlo a un MemoryStream.
1 //Open an archive from a stream and extract it to a MemoryStream
2 var ms = new MemoryStream();
3 using (GzipArchive archive = new GzipArchive(File.OpenRead(dataDir + "sample.gz")))
4 {
5 archive.Open().CopyTo(ms);
6 Console.WriteLine(archive.Name);
7 }
Guardar en transmisión
El siguiente ejemplo de código muestra cómo abrir y guardar en Stream.
1 //Writes compressed data to http response stream.
2 var ms = new MemoryStream();
3 using (var archive = new GzipArchive())
4 {
5 archive.SetSource(new FileInfo(dataDir + "data.bin"));
6 archive.Save(ms);
7 }