Добавление записи во вложенный 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");
установить в новую папку под названием "новая папка".