ZipeFile file = new ZipFile(filename); ZipEntry folder = this.file.getEntry("some/path/in/zip/"); if (folder == null || !folder.isDirectory()) throw new Exception(); // now, how do I enumerate the contents of the zipped folder?
Не похоже, что есть способ перечислить ZipEntry в определенном каталоге.
ZipEntry
Вам нужно будет пройти через все ZipFile.entries() и отфильтровать те, которые вы хотите, основываясь на ZipEntry.getName() и посмотреть, если это String.startsWith(String prefix).
ZipFile.entries()
ZipEntry.getName()
String.startsWith(String prefix)
String specificPath = "some/path/in/zip/"; ZipFile zipFile = new ZipFile(file); Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry ze = entries.nextElement(); if (ze.getName().startsWith(specificPath)) { System.out.println(ze); } }
Вы не - по крайней мере, не напрямую. ZIP-файлы на самом деле не являются иерархическими. Перечислите все записи (с помощью ZipFile.entries () или ZipInputStream.getNextEntry ()) и определите, какие из них находятся в нужной папке, изучив имя.
Можете ли вы просто использовать entries()? API-ссылка
entries()