我使用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();
}
}
}
答案 0 :(得分:0)
不是"直接"因此,您可以解压缩到临时目录并将内容移动到桌面。
一个优点是,如果您在同一个驱动器上使用移动,整个目录将一次出现在桌面上,而不是逐个显示。