Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Zip4j成功提取?_Java_Loops_Arraylist_Zip4j - Fatal编程技术网

Java Zip4j成功提取?

Java Zip4j成功提取?,java,loops,arraylist,zip4j,Java,Loops,Arraylist,Zip4j,我正在使用缺乏文档记录的Zip4j Java库来创建一个程序,该程序对锁定的zip文件运行字典攻击。当我运行我的程序时,它会从字典文件中提取值,并按zip运行它们,以查看它们是否有效。如果这样做,则会提取文件。让我恼火的是,即使他正确地提取了它,它仍然会通过它运行密码。我希望它在成功提取后停止。我该怎么做呢?如何创建一个触发器,当文件从zip中提取时,程序停止尝试提取?下面是我正在使用的循环: if(zipper.isEncrypted()){ while(pas

我正在使用缺乏文档记录的Zip4j Java库来创建一个程序,该程序对锁定的zip文件运行字典攻击。当我运行我的程序时,它会从字典文件中提取值,并按zip运行它们,以查看它们是否有效。如果这样做,则会提取文件。让我恼火的是,即使他正确地提取了它,它仍然会通过它运行密码。我希望它在成功提取后停止。我该怎么做呢?如何创建一个触发器,当文件从zip中提取时,程序停止尝试提取?下面是我正在使用的循环:

    if(zipper.isEncrypted()){
            while(passwordCounter != passwordArray.size()){
                zipper.setPassword((String) passwordArray.get(passwordCounter));
                System.out.println("Testing password no." + passwordCounter + ", which is " + passwordArray.get(passwordCounter));
                passwordCounter = passwordCounter + 1;
                try {
                     zipper.extractAll(dest);

                } catch(ZipException ze) {
                    continue;
                }
            }
        } else
            zipper.extractAll(dest);

另外,zip中包含的文件的名称并不总是与zip名称相同,因此您无法检查是否存在与zip名称相同的文件夹。此外,例如,如果用户希望zip转到他们的桌面,您不能说如果大小不是0,那么它已被提取。文件很可能会在桌面上。

中断提取所有(dest)语句,但在
try catch

try {
    zipper.extractAll(dest);
    break;
} catch(ZipException ze) {
    continue;
}
这将导致代码脱离当前循环