Créer GZip en C#

Les archives GZip (.gz) sont utilisées pour compresser un ou plusieurs fichiers à l’aide de l’algorithme de compression zip GNU. Il est couramment utilisé pour la compression de fichiers dans les systèmes d’exploitation UNIX. Dans cet article, vous apprendrez à compresser des fichiers à l’aide de GZip (.gz) par programmation en C#. De plus, l’article expliquera également comment décompresser les archives GZip en C#.

API C# pour compresser et décompresser des fichiers à l’aide de GZip

Pour compresser et décompresser des fichiers à l’aide de GZip, nous utiliserons Aspose.ZIP for .NET. Il s’agit d’une API puissante qui vous permet de travailler avec des formats d’archives populaires tels que ZIP, 7z, GZip, etc. Vous pouvez soit télécharger l’API ou l’installer à l’aide de [NuGet]. 8.

PM> Install-Package Aspose.Zip

Compresser des fichiers à l’aide de GZip en C#

Voici les étapes pour compresser des fichiers à l’aide de GZip en C#.

L’exemple de code suivant montre comment compresser des fichiers vers GZip en C#.

using (GzipArchive archive = new GzipArchive())
{
    // définir la source
    archive.SetSource("data.bin");
    
    // créer une archive
    archive.Save("archive.gz");
}

Décompresser une archive GZip en C#

Voici les étapes pour décompresser une archive GZip en C# en utilisant Aspose.ZIP for .NET.

  • Créez un objet de la classe GzipArchive et initialisez-le avec le chemin de l’archive GZip.
  • Créez un fichier pour le contenu extrait à l’aide de la méthode File.Create(String).
  • Ouvrez GZip pour l’extraction à l’aide de la méthode GZipArchive.Open().
  • Lisez le contenu extrait et écrivez-le dans le fichier.

L’exemple de code suivant montre comment décompresser une archive GZip à l’aide de C#.

// charger l'archive GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // créer un fichier
    using (var extracted = File.Create("data.bin"))
    {
        // Archives ouvertes
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // écrire dans un fichier
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Extraction d’une archive GZip dans Stream en C#

Vous pouvez également extraire une archive GZip dans un objet de flux de mémoire. Voici les étapes pour effectuer cette opération.

L’exemple de code suivant montre comment extraire une archive GZip dans un flux de mémoire à l’aide de C#.

// créer un flux de mémoire
var ms = new MemoryStream();

// charger l'archive GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // extraire et copier dans le flux de mémoire
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Obtenez une licence API gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser l’API sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à compresser ou décompresser des fichiers à l’aide de GZip en C#. De plus, vous avez vu comment extraire un GZip pour diffuser par programme. Vous pouvez en savoir plus sur Aspose.ZIP for .NET en utilisant documentation. De plus, vous pouvez nous contacter pour nous faire part de vos questions via notre forum.

Voir également