Arbeiten mit GZip-Archiven

Überblick

Mit der Aspose.ZIP für .NET-API können Sie GZip-Archive in Ihren Anwendungen erstellen und verwalten, ohne dass andere Anwendungen von Drittanbietern erforderlich sind. Die Aspose.ZIP API stellt die Klasse „ GZipArchive“ für die Arbeit mit GZip-Archiven bereit. Diese Klasse stellt verschiedene Methoden zum Ausführen von Vorgängen an Archiven bereit.

Der Gzip-Komprimierungsalgorithmus basiert auf dem DEFLATE-Algorithmus, einer Kombination aus LZ77- und Huffman-Codierung.

Eine Datei komprimieren

Das folgende Codebeispiel zeigt, wie eine Datei mithilfe der GZipArchive-Instanz komprimiert wird.

1    using (GzipArchive archive = new GzipArchive())
2    {
3        archive.SetSource(dataDir + "data.bin");
4        archive.Save(dataDir + "archive.gz");
5    }

GZIP-Archiv öffnen

Das folgende Codebeispiel zeigt, wie man ein GZip-Archiv öffnet.

 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    }

In Speicherstream extrahieren

Das folgende Codebeispiel zeigt, wie man ein Archiv aus einem Stream öffnet und es in einen MemoryStream extrahiert.

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    }

Als Stream speichern

Das folgende Codebeispiel zeigt, wie man Stream öffnet und speichert.

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    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.