Метод JAVA ZipFile records () не видит каталоги - PullRequest
5 голосов
/ 18 ноября 2010

Я работаю над цифровыми документами и цифровыми подписями и наткнулся на проблему.

Ввод: documentX.adoc - zip-файл с файлами и папками внутри.

Мне нужно получить весь контент во входном файле - список папок и файлов.

Что мне делать:

ZipFile adocFile = new ZipFile(documentXFileName);
ArrayList <String> adocFiles = new ArrayList<String>();
Enumeration <? extends ZipEntry> entries;
entries = adocFile.entries();
for (entries = adocFile.entries(); entries.hasMoreElements();)
{
    adocFiles.add(entries.nextElement().getName());
}

Я пытался создать ArrayList и добавить ZipEntries вместо имен - все еще ничего. Может быть, есть другой способ? Странно то, что у ZipEntry есть метод .isDirectory () ...

Спасибо за помощь, Martin

1 Ответ

9 голосов
/ 18 ноября 2010

Из документации :

Запись каталога определяется как запись, имя которой заканчивается на '/'.

.

Нет необходимости хранить каталоги в ZIP-файле - это необязательные записи. Можно сохранить последовательность байтов с путем foo/bar.txt без записи, названной foo. Инструменты Zip могут создать иллюзию того, что такие вещи существуют в архиве, даже если они не существуют.

...