使用Java解压缩所有文件而不使用它的文件夹

时间:2018-05-25 07:21:41

标签: command-line java zip rar

是否可以解压缩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();

当我执行此代码时输出如

解压缩文件夹----- folder1(包含1.txt,2.xlsx,3.pdf等文件)和folder2(包含4.txt,5.pdf等文件)

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

是否有任何命令。感谢。

1 个答案:

答案 0 :(得分:3)

所有你需要改变的地方:

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

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