【问题标题】:Unzip all file without it's folder using Java使用Java解压缩所有没有文件夹的文件
【发布时间】:2018-11-06 08:15:28
【问题描述】:

是否可以在没有文件夹的情况下从 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、5.pdf等文件)

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

是否有任何命令。谢谢。

【问题讨论】:

  • 运行“7z --help”看看是否有“e”命令“解压无目录”。
  • 这些会对您有所帮助。您不需要运行 CMD 命令。
  • 以上链接只能解压zip文件,不能解压.rar、.tar、.7-Zip文件

标签: command-line java zip rar


【解决方案1】:

所有你需要改变的:

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

PS。我不认为 Java 是运行操作系统命令的最佳选择。你会浪费很多时间。但如果你坚持,别忘了也可能有错误流。

【讨论】:

  • 以上答案也提取子文件夹,如何消除文件夹创建。
  • 它正在工作。谢谢
猜你喜欢
  • 2016-01-10
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多