Объединить любое количество архивов 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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.