Travailler avec les archives GZip

Aperçu

L’API Aspose.ZIP pour .NET permet de créer et de gérer des archives GZip dans vos applications sans avoir besoin d’autres applications tierces. L’API Aspose.ZIP fournit la classe  GZipArchive pour fonctionner avec les archives GZip. Cette classe fournit diverses méthodes pour effectuer des opérations sur les archives.

L’algorithme de compression Gzip est basé sur l’algorithme DEFLATE, qui est une combinaison du codage LZ77 et Huffman.

Compresser un fichier

L’exemple de code suivant montre comment compresser un fichier à l’aide de l’instance GZipArchive.

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

Ouvrir les archives GZIP

L’exemple de code suivant montre comment ouvrir une archive 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    }

Extraire vers le flux mémoire

L’exemple de code suivant montre comment ouvrir une archive à partir d’un flux et l’extraire vers 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    }

Enregistrer dans le flux

L’exemple de code suivant montre comment ouvrir et enregistrer dans 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    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.