使用 Java 解压缩没有文件夹的所有文件

Unzip all file without it's folder using Java

是否可以在没有文件夹的情况下从 zip 文件夹中解压缩所有文件?

示例:

zipfolder.zip 有两个子文件夹,名为 folder1(包含 1.txt、2.xlsx、3.pdf 等文件)和 folder2(包含 4.txt、5.pdf)

注意: 源可以是任何类型的存档文件,如 .zip、.rar、.tar、.7-zip 等

这是我的代码:

String sevenZipLocation = "C:\Program Files\7-Zip\7z.exe";
String src = source filepath (zip file)
String target = output path (output path)

String[] command={sevenZipLocation,"x",src,"-o"+target,"-aou","-y"};

ProcessBuilder p = new ProcessBuilder( command );
Process process = p.start();

InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

@SuppressWarnings("unused")
String line;

while ((line = br.readLine()) != null){
    System.out.println("line1 "+line);
}
process.waitFor();

当我执行这段代码时,输​​出像

解压文件夹-----文件夹1(有1.txt、2.xlsx、3.pdf等文件)和文件夹2(有4.txt、[=43等文件=])

但我想从所有文件夹和输出中提取唯一的文件 1.txt、2.xlsx、3.pdf、4.txt、5.pdf在输出路径中。

有什么命令吗?谢谢

所有你需要改变的:

String[] command={sevenZipLocation,"e",src,"-o"+target,"-aou","-y","*.*","-r"};

PS。我不认为 Java 是 运行 OS 命令的最佳选择。你会浪费很多时间。但如果你坚持,不要忘记也可能有一个错误流。