TrueZip Рекурсивная распаковка? - PullRequest
2 голосов
/ 03 июня 2010

У кого-нибудь есть опыт работы с библиотекой TrueZip java? Я пытаюсь выполнить простую задачу: разархивировать архив, содержащий подпапки, и до сих пор не смог заставить его работать.

(причина, по которой я использую TrueZip, заключается в том, что ошибка кодирования иностранных символов в методах java.util.zip)

Глядя на API, кажется, что file.archiveCopyAllTo () является их методом "распаковки". Однако приведенный ниже код работает только в том случае, если мой архив плоский и содержит только файлы. Сбой, если есть подпапки.

private static void testUnzip(String zipPath, File unzipFolder) 
{
    de.schlichtherle.io.File zipFile = new de.schlichtherle.io.File(zipPath);
    boolean result = zipFile.archiveCopyAllTo(unzipFolder);
    System.out.println("UNZIP RESULT: " + result);
}

Или, если кто-то знает другое средство, чтобы разархивировать архивы с возможными не-ASCII-символами в именах файлов, это тоже было бы здорово ... спасибо!

EDIT: Я отказался от использования TrueZIP. Я смог использовать org.apache.tools.zip для извлечения файлов с не-ASCII-символами в именах файлов. Этот API имеет для меня больше смысла ...

1 Ответ

1 голос
/ 30 августа 2010

в моем заявлении я должен был добавить

de.schlichtherle.io.File.umount(zipFile);

В качестве последнего утверждения, чтобы увидеть результат, кажется, что (по крайней мере, некоторая версия) truezip кэширует весь zip-файл и записывает его на диск только во время метода umount.

НТН

...