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?
答案 0 :(得分:5)
看起来似乎没有办法在某个目录下枚举ZipEntry
。
您必须浏览所有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);
}
}
答案 1 :(得分:1)
你不 - 至少不是直接的。 ZIP文件实际上不是分层的。枚举所有条目(通过ZipFile.entries()或ZipInputStream.getNextEntry())并通过检查名称确定所需的文件夹。
答案 2 :(得分:0)
你能使用entries()
吗? API link