Conversion de ZIP en 7z

Si vous voulez convertir l’archive ZIP en 7z, lisez cet article.

Aspose.Zip permet maintenant de composer des archives 7z avec les algorithmes de compression LZMA, LZMA2, PPMd et BZip2.

Conversion

L’API Aspose.ZIP fournit la classe SevenZipArchive pour travailler avec les archives 7z. Nous pouvons extraire une entrée en mémoire sans la sauvegarder dans un stockage intermédiaire et la passer immédiatement dans l’archive 7z.

Assurez-vous que vous disposez 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 des entrées de l’archive ZIP et les placer immédiatement dans l’archive 7z. Les entrées 7z seront compressées avec la méthode LZMA2 quel que soit l’algorithme utilisé dans l’archive source. Les entrées qui sont des répertoires sont ignorées, mais leurs fichiers sont ajoutés en respectant les chemins relatifs.

 1try (Archive source = new Archive("source.zip")) {
 2    try (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings()))) {
 3        for (ArchiveEntry entry : source.getEntries()) {
 4            if (!entry.isDirectory()) {
 5                try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
 6                    entry.extract(out) ;
 7                    try (ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray())) {
 8                        archive.createEntry(entry.getName(), in) ;
 9                    }
10                }
11            }
12        }
13        archive.save("result.7z") ;
14    }
15} catch (IOException ex) {
16}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.