Java 如何检查zip存档中是否存在该文件?

Java 如何检查zip存档中是否存在该文件?,java,zip,file-exists,nio2,Java,Zip,File Exists,Nio2,如何检查zip存档中是否存在该文件? 例如,检查app.apk是否包含classes.dex 我想找到一个使用JavaNIO.2Path的解决方案,如果可能的话,不提取整个归档文件 我试过了,但没有成功: Path classesFile = Paths.get("app.apk", "classes.dex"); // apk file with classes.dex if (Files.exists(apkFile)) // false! ... 我的解决办法是: Path

如何检查zip存档中是否存在该文件?
例如,检查
app.apk
是否包含
classes.dex

我想找到一个使用JavaNIO.2
Path
的解决方案,如果可能的话,不提取整个归档文件

我试过了,但没有成功:

Path classesFile = Paths.get("app.apk", "classes.dex");  // apk file with classes.dex
if (Files.exists(apkFile))  // false!
    ...
我的解决办法是:

Path apkFile = Paths.get("app.apk");
FileSystem fs = FileSystems.newFileSystem(apkFile, null);
Path dexFile = fs.getPath("classes.dex");
if (Files.exists(dexFile))
    ...

您可以尝试ZipInputStream。用途如下:

    ZipInputStream zip = new ZipInputStream(Files.newInputStream(
            Paths.get(
                    "path_to_File"),
            StandardOpenOption.READ));
    ZipEntry entry = null;

    while((entry = zip.getNextEntry()) != null){
        System.out.println(entry.getName());
    }