我正在尝试使用zip4j jar文件提取受密码保护的ZIP文件,但我收到了以下错误

时间:2017-07-07 06:38:20

标签: java zip extract password-protection zip4j

我是Java的新手,我正在尝试使用java提取受密码保护的ZIP文件,并且我编写了相同的代码,但是我收到的错误很少,例如isEncrypted(),fileHeaderList(),extractFile( ) 我搜索了一些相关的帖子/问题,但没有找到确切的解决方案。 你们这些人可以在这个问题上帮助我吗

 import java.util.ArrayList;
    import java.util.List;
    import java.util.zip.ZipFile;
    import net.lingala.zip4j.model.FileHeader;

    public class Extraction {
    public Extraction() {

            try {
                ZipFile zipFile = new ZipFile("C:\\Users\\rajesh\\Desktop\\ZipFile\\file1.zip");

                //Error for isEncrypted() "The method isEncrypted() is undefined for the type ZipFile"
                if (zipFile.isEncrypted()) {
                                        zipFile.setPassword("MYPASS!");
                }

                //The method getFileHeaders() is undefined for the type ZipFile
                List fileHeaderList = zipFile.getFileHeaders();

                                for (int i = 0; i < fileHeaderList.size(); i++) {
                    FileHeader fileHeader = (FileHeader)fileHeaderList.get(i);
        //The method extractFile(FileHeader, String) is undefined for the type ZipFile                              
zipFile.extractFile(fileHeader, "C:\\Users\\rajesh\\Desktop\\ZipFile");
                }

            } catch (Exception e) {
                System.out.println("Please Try Again");
            }

        }

        public static void main(String[] args) {
            new Extraction();

        }

    }

2 个答案:

答案 0 :(得分:1)

您正在导入java.util.zip.ZipFile,但听起来您想要使用zip4j ZipFile类。我不熟悉该库,但根据在线文档,我认为您可能想要导入net.lingala.zip4j.core.ZipFile

答案 1 :(得分:1)

您已导入java.util.zip.ZipFile并尝试在其上调用不存在的方法。您可以通过我上面提供的链接找到ZipFile的API。当你导入net.lingala.zip4j.model.FileHeader时,我想你想使用一个不同于java.util.zip下的zip库。因此,为了解决您的问题,您必须清理您的导入。您很可能需要删除包java.util.zip的import语句,并需要从net.lingala.zip4j.*导入相应的类。