Объединить любое количество архивов tar.gz
Если вы хотите объединить произвольное количество архивов TAR.GZ в одиночный архив, прочтите эту статью.
Описание
Aspose.zip API предоставляет Tararchive класс для извлечения и составления архивов TAR, с сжатием или без него. Мы можем извлечь архив в память, не сохраняя его в промежуточное хранилище, и сразу же передать его записи в комбинированный архив TAR.
Убедитесь, что у вас достаточно виртуальной памяти, чтобы сохранить содержание всех записей.
Перевести запись
В следующем примере кода демонстрируется, как извлечь записи из нескольких архивов Tar.gz и немедленно поставить их в архив TAR. Мы сжимаем его к GZ в памяти, используя метод SaveGzippup.
1String [] archivespaths = new String [] {"data/first.tar.gz", "data/second.tar.gz", "data/third.tar.gz"};
2Tararchive [] Archives = новый Tararchive [Archivespaths.length];
3Попробуйте (Tararchive объединить = new tararchive ()) {
4 для (int i = 0; i <archivespaths.length; i ++) {
5 Tararchive a = tararchive.fromgzip (Archivespaths [i]);
6 Архив [i] = a;
7 для (тарецвода: 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}
Подобный подход для других архивов
Вы можете использовать тот же подход для объединения Tar.lz, tar.xz.