Java 如何计算zip文件中的特定文件数

Java 如何计算zip文件中的特定文件数,java,zip,zipfile,Java,Zip,Zipfile,我有一个包含许多zip条目的zip文件 (许多png图像) 我想计算包含word“idle” zip条目如下所示: on001、on002…on0037-idle001、idle002…idle0085 请告诉我如何计算名称中包含word“idle” 我知道如何按.size()计算zip中的所有文件,但如何计算特定的文件?循环查看.entries()并检查每个ZipEntry的名称: ZipFile zipFile = new ZipFile("???.zip"); int count = 0

我有一个包含许多zip条目的zip文件 (许多png图像)

我想计算包含word
“idle”

zip条目如下所示:

on001、on002…on0037-idle001、idle002…idle0085

请告诉我如何计算名称中包含word
“idle”


我知道如何按
.size()
计算zip中的所有文件,但如何计算特定的文件?

循环查看
.entries()
并检查每个
ZipEntry
的名称:

ZipFile zipFile = new ZipFile("???.zip");

int count = 0;

Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
    ZipEntry entry = entries.nextElement();
    if (entry.getName().contains("idle")) count++;
}
ZipFile-ZipFile=新的ZipFile(“??.zip”);
整数计数=0;

枚举我用这个代码解决了这个问题,但是太慢了,韦斯顿的代码要好得多

            FileInputStream fis = new FileInputStream("zip file adress");
            ZipInputStream zis = new ZipInputStream(fis);
            ZipEntry ze = null;


            int idlecount;
            while ((ze = zis.getNextEntry()) != null){
                if (ze.getName().contains("idle")){
                    idlecount++;
                }

            }

不错,但我发现错误foreach不适用于“java.util.Enumeration”类型,我找到了另一种方法,但它太慢和滞后。。你能告诉我plzIf我猜的原因吗?我想说,这个方法可能只是在zip文件的开头使用一个目录,而你的方法实际上是在寻找每个zip文件条目的开头,如果你真的打开它们,这是可以的,但是如果你不打开,就需要做更多的工作。