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

2022-09-03 04:15:52

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

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

zip4j 网站

非常感谢!


答案 1

请尝试以下操作,并确保使用的是最新的 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();
}

答案 2

在这里,我们有一个文件游戏.zip在Android手机的下载文件夹中,我们正在使用下面给出的密码提取它:

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


推荐