パスワードで保護された 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 Decryptor に提供された空または null パスワード.unzip.Unzip.initExtractFile(Unzip.java:163) at 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 Decryptor に提供された空または null パスワード.zip4j.unzip。UnzipEngine.unzipFile(UnzipEngine.java:98) at net.lingala.zip4j.unzip.Unzip.initExtractFile(Unzip.java:160) ... 6 その他原因: net.lingala.zip4j.exception.ZipException: 空または null 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.init(AESDecrypter.java:99) で net.lingala.zip4j.crypto.AESDecrypter.(AESDecrypter.java:65) で AES Decryptor に指定された空または null パスワード) net.lingala.zip4j.unzip.UnzipEngine.initDecrypter(UnzipEngine.java:202) で net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) で net.lingala.zip4j.unzip.UnzipEngine で。 getInputStream(UnzipEngine.java:118) at net.lingala.zip4j.unzip.UnzipEngine.unzipFile(UnzipEngine.java:78) ... 7 詳細zip4j.exception.ZipException: net.lingala.zip4j.crypto.AESDecrypter.init(AESDecrypter.java:99) で net.lingala.zip4j.crypto.AESDecrypter.(AESDecrypter.java:65) で AES Decryptor に指定された空または null パスワード) net.lingala.zip4j.unzip.UnzipEngine.initDecrypter(UnzipEngine.java:202) で net.lingala.zip4j.unzip.UnzipEngine.init(UnzipEngine.java:185) で net.lingala.zip4j.unzip.UnzipEngine で。 getInputStream(UnzipEngine.java:118) at 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 もっと見る
ZIPファイルの作成と解凍にZip4jを使用しています。