Conversion de ZIP en tar.gz via C#

Tar.gz est de loin le format d’archive compressé le plus répandu dans le monde Linux, tandis que ZIP est le plus populaire pour Windows. Si vous souhaitez convertir une archive ZIP en tar.gz, lisez cet article.

Conversion

L’ API Aspose.ZIP fournit la  méthode SaveGzipped pour compresser une archive tar à la volée. Nous pouvons extraire une entrée de l’archive ZIP en mémoire sans la sauvegarder dans un stockage intermédiaire et la transmettre immédiatement dans l’archive tar.

Assurez-vous de disposer de suffisamment de mémoire virtuelle pour conserver le contenu de toutes les entrées.

Transférer une entrée

L’exemple de code suivant montre comment extraire les entrées de l’archive ZIP et les placer immédiatement dans l’archive tar.gz. Les entrées qui sont des répertoires sont ignorées, mais leurs fichiers sont ajoutés en respectant les chemins relatifs.

 1    using (Archive source = new Archive("source.zip"))
 2    {
 3        using (TarArchive tar = new TarArchive())
 4        {
 5            foreach (ArchiveEntry entry in source.Entries)
 6            {
 7                if (!entry.IsDirectory)
 8                {
 9                    MemoryStream mem = new MemoryStream();
10                    entry.Open().CopyTo(mem);                
11                    tar.CreateEntry(entry.Name, mem);
12                }
13            }
14
15            tar.SaveGzipped("result.tar.gz");
16        }
17    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.