private List<IFile> listFiles(boolean includeFilesInNestedSubdirs) { Map<String, ZipEntry> entriesByName = new LinkedHashMap<String, ZipEntry>(); for (ZipEntry entry : getAllEntries()) { if (ZipDirectory.isInDir(getNameInZip(), entry, includeFilesInNestedSubdirs)) { entriesByName.put(entry.getName(), entry); } } List<IFile> files = new ArrayList<IFile>(); for (ZipEntry ze : entriesByName.values()) { NestedZipDirectory parent = includeFilesInNestedSubdirs ? buildParent(ze, entriesByName) : this; if (ze.isDirectory()) files.add(new NestedZipDirectory(archive, ze, parent, cache)); else files.add(new NestedZipFile(archive, ze, parent, cache)); } return files; }
private List<IFile> listFiles(boolean includeFilesInNestedSubdirs) { List<IFile> files = new ArrayList<IFile>(); ZipFile z = openZipFile(); List<? extends ZipEntry> entries = Collections.list(z.entries()); for (ZipEntry possibleEntry : entries) { if (isInDir(getNameInZip(), possibleEntry, includeFilesInNestedSubdirs)) { ZipDirectory parent = includeFilesInNestedSubdirs ? buildParent(possibleEntry) : this; if (possibleEntry.isDirectory()) { files.add(new ZipDirectory(zip, possibleEntry, parent, cache)); } else { files.add(new ZipFileImpl(zip, possibleEntry, parent, cache)); } } } closeZipFile(z); return files; }