static void zip2dir_withPredicate(File inZip, File outDir, IF1 pred) ctex { temp ZipFile zipFile = new ZipFile(inZip); Enumeration entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = (ZipEntry) entries.nextElement(); if (entry.isDirectory()) continue; // We care about files only, really. Directories are made on the fly anyway. if (!pred.get(entry.getName())) continue; File outFile = new File(outDir, entry.getName()); System.out.println("Unzipping " + entry.getName() + " to " + outFile.getAbsolutePath()); stream2file(zipFile.getInputStream(entry), outFile); } }