Fusionner un nombre quelconque d'archives Tar.gz
Si vous souhaitez combiner un nombre arbitraire d’archives Tar.gz en une seule archive, lisez cet article.
Description
L’API Aspose.ZIP fournit la classe TarArchive pour extraire et composer des archives Tar, avec ou sans compression. Il est possible d’extraire une archive en mémoire sans la sauvegarder dans un stockage intermédiaire et de transmettre immédiatement ses entrées à une archive Tar combinée.
Assurez-vous d’avoir 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 plusieurs archives Tar.gz et les placer immédiatement dans une archive tar. Nous les compressons en gz en mémoire en utilisant la méthode saveGzipped.
1String[] archivesPaths = new String[] { "data/first.tar.gz", "data/second.tar.gz", "data/third.tar.gz" } ;
2TarArchive[] archives = new TarArchive[archivesPaths.length] ;
3try (TarArchive merged = new TarArchive()) {
4 for (int i = 0 ; i < archivesPaths.length ; i++) {
5 TarArchive a = TarArchive.fromGZip(archivesPaths[i]) ;
6 archives[i] = a ;
7 for (TarEntry entry : a.getEntries()) {
8 merged.createEntry(entry.getName(), entry.open()) ;
9 }
10 }
11
12 merged.saveGzipped("merged.tar.gz");
13
14 for (int i = 0; i < archivesPaths.length; i++) {
15 archives[i].close();
16 }
17}
Approche similaire pour les autres archives
Vous pouvez utiliser la même approche pour combiner tar.lz, tar.xz.