Добавление записи во вложенный zip-файл с помощью commons.apache.compress

Моя структура Zip-файла выглядит примерно так:

t1.zip -> t2.zip -> sample.txt

Я хочу заменить sample.txt. Если это один уровень, я смог это сделать. Пожалуйста, помогите мне с многоуровневыми вложенными почтовыми файлами.

Мой образец кода

ZipFile zipFile = new ZipFile(new File("t1.zip");
ZipArchiveEntry ze = zipFile.getEntry("t2.zip"); // So It works fine

Я старался

ZipArchiveEntry ze = zipFile.getEntry("t2.zip/sample.txt"); // returns null

Мое намерение состояло в том, чтобы следовать примеру со страницы документации apache, так как

ZipArchiveEntry entry = new ZipArchiveEntry(new File("sample.txt")); // Should I t2.zip/sample.txt ?
entry.setSize(size);
zipOutput.putArchiveEntry(entry);
zipOutput.write(contentOfEntry);
zipOutput.closeArchiveEntry();

Но мне непонятно, как поместить архивную запись 2 уровня внутрь?

1 ответ

Вы должны использовать

new ZipArchiveEntry(new File("sample.txt"), "sample.txt");

установить файл в корневую папку и

new ZipArchiveEntry(new File("sample.txt"), "new folder/sample.txt");

установить в новую папку под названием "новая папка".

Другие вопросы по тегам