我正在尝试解压缩带有密码保护的zipfile。我知道有一个名为“zip4j”的java库可以帮助我。但是我没有打开zip4j网站来查看教程。
我用另一面镜子下载了zip4j库,但我不知道如何使用它。是否有人可以粘贴使用zip4j解压缩密码保护zip文件的示例代码?
非常感谢!
答案 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