如何使用zip4j提取带密码保护的zip文件

时间:2012-06-24 03:58:06

标签: java passwords unzip

我正在尝试解压缩带有密码保护的zipfile。我知道有一个名为“zip4j”的java库可以帮助我。但是我没有打开zip4j网站来查看教程。

我用另一面镜子下载了zip4j库,但我不知道如何使用它。是否有人可以粘贴使用zip4j解压缩密码保护zip文件的示例代码?

zip4j website

非常感谢!

2 个答案:

答案 0 :(得分:32)

尝试以下操作并确保使用最新的Zip4j库(1.3.1):

String source = "folder/source.zip";
String destination = "folder/source/";
String password = "password";

try {
    ZipFile zipFile = new ZipFile(source);
    if (zipFile.isEncrypted()) {
        zipFile.setPassword(password);
    }
    zipFile.extractAll(destination);
} catch (ZipException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

在这里,我们在android手机的Downloads文件夹中有一个game.zip文件,我们正在使用下面给出的密码提取该文件:

String unzipFileAddress = Environment.DIRECTORY_DOWNLOADS "/Game.zip";
String filePassword = "2222"; // password of the file
String destinationAddress = Environment.DIRECTORY_DOWNLOADS + "/Game";

ZipFile zipFile = new ZipFile(unzipFileAddress, filePassword.toCharArray());
        
try {
     zipFile.extractAll(destinationAddress);
} catch (Exception e) {
  // if crashes print the message or Toast
}

在执行之前在构建Gradle(应用程序级别)中添加依赖项

dependencies{
 implementation 'net.lingala.zip4j:zip4j:2.6.4'
} // for lastest version check the link below

确保您具有存储权限,这些愚蠢的错误会占用您宝贵的时间

// Add in AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

通过手动解压缩来确保您的zip文件不是损坏的文件。

如果您想对压缩进行一些复杂的工作,则应该从这里寻求帮助:https://github.com/srikanth-lingala/zip4j