Convertir ZIP en TAR en C#

Convertir ZIP en TAR en C#

Le format d’archivage ZIP est bien connu et largement utilisé pour compresser des fichiers et des dossiers en un seul fichier compressé. Alors que TAR est un autre format de fichier basé sur UNIX qui offre la compression de divers fichiers en un seul emplacement. En fait, la compression de fichiers est un composant indispensable dans toute entreprise en ligne, car elle réduit la taille du fichier et accélère le transfert de fichiers sur Internet. La plupart du temps, TAR est préféré car il conserve les autorisations et les dispositions. Dans cet article de blog, nous apprendrons comment convertir ZIP en TAR en C# par programmation dans une application .NET.

Nous couvrirons les sections suivantes :

Installation de l’API du convertisseur ZIP vers TAR

Nous utiliserons cette bibliothèque ZIP .NET pour réaliser par programme la conversion ZIP en TAR. Il s’agit d’une bibliothèque légère utilisée pour compresser et décompresser divers types de formats d’archives.

Vous pouvez installer cette API en téléchargeant les fichiers DLL ou en l’installant en exécutant la commande suivante dans le gestionnaire de packages NuGet.

Install-Package Aspose.Zip 

Convertir ZIP en TAR en C# par programmation

L’API de conversion ZIP en TAR propose des méthodes et des propriétés pour convertir le format ZIP au format de fichier TAR. Cependant, vous pouvez parcourir la liste des méthodes disponibles ici.

Suivez les étapes suivantes pour réaliser cette conversion :

  1. Instanciez une instance de la classe Archive et chargez le fichier ZIP source.
  2. Créez un objet de la classe TarArchive pour accéder aux fonctionnalités TAR.
  3. Créez un objet de la classe ArchiveEntry pour accéder à chaque ArchiveEntry dans le ZIP.
  4. Initialisez un objet de la classe MemoryStream et copiez l’entrée à l’aide de la méthode entry.Open().CopyTo(mem).
  5. Appelez la méthode CreateEntry pour créer une seule entrée dans l’archive TAR.
  6. Enregistrez le fichier TAR en appelant la méthode SaveGzipped.

Copiez et collez l’extrait de code suivant dans votre fichier principal et exécutez le serveur :

 // Instanciez une instance de la classe Archive et chargez le fichier ZIP source 
            using (Archive source = new Archive("CompressDirectory_out.zip"))
            {
                // créer un objet de la classe TarArchive pour accéder aux fonctionnalités TAR   
                using (TarArchive tar = new TarArchive())
                {
                    // Créez un objet de la classe ArchiveEntry pour accéder à chaque ArchiveEntry dans le ZIP 
                    {
                        if (!entry.IsDirectory)
                        { 
                            // Initialisez un objet de la classe MemoryStream et copiez l'entrée à l'aide de la méthode entry.Open().CopyTo(mem)   
                            MemoryStream mem = new MemoryStream();
                            entry.Open().CopyTo(mem); 
                            // appelez la méthode CreateEntry pour créer une seule entrée dans l'archive TAR.             
                            tar.CreateEntry(entry.Name, mem);
                        }
                    }
                    // enregistrez le fichier TAR en appelant la méthode SaveGzipped. 
                    tar.SaveGzipped("result.tar.gz");
                }
            }

Obtenez une licence gratuite

Vous pouvez bénéficier d’une licence temporaire gratuite pour essayer l’API sans limitation d’évaluation.

Résumé

Nous terminons ici ce billet de blog. Nous avons implémenté le processus de conversion de ZIP en TAR en C# à l’aide de cette bibliothèque .NET ZIP. De plus, cet article vous aidera sûrement si vous souhaitez intégrer une API de conversion ZIP vers TAR dans votre application .NET. De plus, vous pouvez visiter la documentation de cette bibliothèque pour connaître d’autres méthodes et propriétés. Enfin, conholdate.com écrit de nouveaux articles de blog sur d’autres sujets. Par conséquent, veuillez rester en contact pour des mises à jour régulières.

poser une question

Vous pouvez nous faire part de vos questions ou requêtes sur notre forum.

Voir également