0

我正在尝试提取包含受密码保护的 PDF 文件的 ZIP 文件。下面是我提取 ZIP 文件的代码。

ZipFile zipFile = new ZipFile(new File("C:\\Users\\sathesh\\Desktop\\temp.zip"));
        if (zipFile.isEncrypted()) {
            zipFile.setPassword("abcd1234");
        }
        zipFile.extractAll("D:\\temp\\final");

执行代码后,ZIP 文件将被提取,但我丢失了应用于 PDF 文件的密码保护。如何在不丢失文件密码保护的情况下提取 ZIP 文件。
注意:如果我发表评论zipFile.setPassword("abcd1234");,那么我会遇到异常

线程“主”net.lingala.zip4j.exception.ZipException 中的异常:net.lingala.zip4j.exception.ZipException:net.lingala.zip4j.exception.ZipException:为 net.lingala.zip4j 处的 AES 解密器提供的密码为空或空.unzip.Unzip.initExtractFile(Unzip.java:163) 在 net.lingala.zip4j.unzip.Unzip.initExtractAll(Unzip.java:83) 在 net.lingala.zip4j.unzip.Unzip.extractAll(Unzip.java:73) ) 在 net.lingala.zip4j.core.ZipFile.extractAll(ZipFile.java:488) 在 net.lingala.zip4j.core.ZipFile.extractAll(ZipFile.java:451) 在 Shiva.ZipProtect.zipFileUsingPassProtect(ZipProtect.java: 51) 在 Shiva.ZipProtect.main(ZipProtect.java:25) 引起:net.lingala.zip4j.exception.ZipException:net.lingala.zip4j.exception.ZipException:在 net.lingala 处为 AES 解密器提供了空或空密码.zip4j.解压缩。UnzipEngine.unzipFile(UnzipEngine.java:98) at net.lingala.zip4j.unzip.Unzip.initExtractFile(Unzip.java:160) ... 6 更多原因:net.lingala.zip4j.exception.ZipException:空或空在 net.lingala.zip4j.crypto.AESDecrypter.(AESDecrypter.java:65) 在 net.lingala.zip4j.unzip 的 net.lingala.zip4j.crypto.AESDecrypter.init(AESDecrypter.java:99) 为 AES Decryptor 提供的密码.UnzipEngine.initDecrypter(UnzipEngine.java:202) 在 net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) 在 net.lingala.zip4j.unzip.UnzipEngine.getInputStream(UnzipEngine.java:118) 在net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:78) ... 7 更多zip4j.exception.ZipException:在 net.lingala.zip4j.crypto.AESDecrypter.(AESDecrypter.java:65) 处为 net.lingala.zip4j.crypto.AESDecrypter.init(AESDecrypter.java:99) 处的 AES 解密器提供空密码或空密码) 在 net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) 在 net.lingala.zip4j.unzip.UnzipEngine 的 net.lingala.zip4j.unzip.UnzipEngine.initDecrypter(UnzipEngine.java:202)。 getInputStream(UnzipEngine.java:118) 在 net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:78) ... 7 更多zip4j.exception.ZipException:在 net.lingala.zip4j.crypto.AESDecrypter.(AESDecrypter.java:65) 处为 net.lingala.zip4j.crypto.AESDecrypter.init(AESDecrypter.java:99) 处的 AES 解密器提供空密码或空密码) 在 net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) 在 net.lingala.zip4j.unzip.UnzipEngine 的 net.lingala.zip4j.unzip.UnzipEngine.initDecrypter(UnzipEngine.java:202)。 getInputStream(UnzipEngine.java:118) 在 net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:78) ... 7 更多202) 在 net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) 在 net.lingala.zip4j.unzip.UnzipEngine.getInputStream(UnzipEngine.java:118) 在 net.lingala.zip4j.unzip.UnzipEngine .unzipFile(UnzipEngine.java:78) ... 还有 7 个202) 在 net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) 在 net.lingala.zip4j.unzip.UnzipEngine.getInputStream(UnzipEngine.java:118) 在 net.lingala.zip4j.unzip.UnzipEngine .unzipFile(UnzipEngine.java:78) ... 还有 7 个

我正在使用Zip4j创建和提取 ZIP 文件。

4

0 回答 0