我正在使用 zip4j 进行解压,但现在我需要解压没有原始文件夹结构的 .zip 文件。
e.g.
desktop/abc.zip/
/a
/b/
/x.txt
/y.txt
/z.txt
我想将 abc.zip 中的所有文件直接提取到桌面。
e.g.
desktop/x.txt
/y.txt
/z.txt
由于 .zip 文件将受密码保护,因此我无法通过 java.util.zip 库执行此操作。我对我的要求进行了一些研究,但徒劳无功。我还尝试查看/重写 zip4j 的源代码,但这似乎超出了我的能力范围。
我是否错过了 zip4j 中可以帮助我轻松实现它的任何设置,或者是否有任何其他适合此要求的 java 库?
以下是我的部分程序的源代码:
public class FileDecompressor {
void decompressFiles(String sourceFile, String fileDestination) {
decompressFiles(sourceFile, fileDestination, "");
}
void decompressFiles(String sourceFile, String fileDestination, String zipPassword) {
try {
ZipFile zipFile = new ZipFile(sourceFile);
if (zipFile.isEncrypted()) {
zipFile.setPassword(zipPassword);
}
zipFile.extractAll(fileDestination);
} catch (ZipException e) {
e.printStackTrace();
}
}
}