Разархивируйте весь файл без его папки, используя Java - PullRequest
0 голосов
/ 25 мая 2018

Можно ли распаковать все файлы из папки 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();

Когда я выполняю этот код, вывод такой как

unzip folder ----- folder1 (файлы типа 1.txt, 2.xlsx, 3.pdf) и folder2 (файлы типа 4.txt, 5.pdf)

Но я хочу извлечь единственный файл из всех папок и вывести их как1.txt, 2.xlsx, 3.pdf, 4.txt, 5.pdf в пути вывода.

Есть ли для этого какая-либо команда.Спасибо.

1 Ответ

0 голосов
/ 25 мая 2018

Все, что вам нужно изменить:

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

PS.Я не думаю, что Java - лучший выбор для запуска команд ОС.Вы будете тратить много времени.Но если вы настаиваете, не забывайте, что может быть и поток ошибок.

...