Я пытаюсь сжать и архивировать все файлы в папке с использованием класса Java Runtime. Мой фрагмент кода выглядит следующим образом:Сжатие и архивирование файлов в папке с использованием Java Runtime
public static void compressFileRuntime() throws IOException, InterruptedException {
String date = Util.getDateAsString("yyyy-MM-dd");
Runtime rt = Runtime.getRuntime();
String archivedFile = "myuserData"+date+".tar.bz2";
String command = "tar --remove-files -cjvf "+archivedFile+" marketData*";
File f = new File("/home/amit/Documents/");
Process pr = rt.exec(command, null, f);
System.out.println("Exit value: "+pr.exitValue());
}
Приведенный выше код не архивирует и сжимает файл, как и ожидалось, хотя он создает файл myuserData2009-11-18.tar.bz2
в папке «/home/amit/Documents/
».
Также выход
Exit value: 2.
Хотя, если я выполнить ту же команду из командной строки, это дает ожидаемый результат.
Пожалуйста, сообщите мне, что мне не хватает.
Благодаря
Amit
Спасибо rsp. Но папка содержит много других типов файлов, и мне нужно архивировать только файлы, начинающиеся с marketData. Кроме того, файлы удаляются FTP в этой папке, а количество файлов меняется. Таким образом, кажется трудным использовать 1-й или 3-й метод, указанный вами. Я попробую со вторым. Не могли бы вы подробнее рассказать об этом. Спасибо, – Amit
Это сработало Спасибо – Amit