Операции файла в Java

Я работаю над небольшим приложением в Java, который берет структуру каталогов и переименовывает файлы согласно определенному формату после парсинга настоящего имени.

Каков лучший класс Java / методология для использования для упрощения этих операций файла?

Править: вопрос только расценивает операционную часть файла, я получил "снижение отформатированного имени" :)

Редактирование 2: Кроме того, как я перечисляю файлы рекурсивно?

5
задан Amir Rachum 22 May 2010 в 23:24
поделиться

4 ответа

Используйте java.io.File


Перечисление всех файлов в каталоге

http://www.javaprogrammingforums.com/java-code-snippets-tutorials/3-how-list-all-files-directory.html

File folder = new File(path);
File[] listOfFiles = folder.listFiles(); 
for (int i = 0; i < listOfFiles.length; i++) {
    // Do something with "listOfFiles[i]"
}

UPDATE

Для рекурсивного перечисления файлов, лучший подход довольно прост:

  • Создайте очередь каталогов. Первоначально добавьте в очередь первый каталог
  • Выбросьте из очереди первый элемент каталога.
  • Перечислите все файлы в этом каталоге, как описано выше
  • Переберите все файлы в этом каталоге
  • Если файл является каталогом (используйте метод isDirectory()), добавьте его в конец очереди. В противном случае, обработайте этот следующий файл по мере необходимости (например, распечатайте)
  • Остановитесь, когда очередь будет пуста.

Пример (думаю, немного отличающийся от моего подхода выше): http://www.javapractices.com/topic/TopicAction.do?Id=68


Переименование файла

http://www.roseindia.net/java/example/java/io/RenameFileOrDir.shtml

    boolean Rename = oldfile.renameTo(newfile);

Поиск нового имени для переименования

Я не уверен, какие правила форматирования вам нужны - когда я реализовывал такую же утилиту на Perl для собственного использования, я использовал регулярные выражения. Для Java это будет java.util.regex

3
ответ дан 14 December 2019 в 19:04
поделиться

Вы всегда можете использовать стандартный класс java.io.File , но он примитивен и не очень полезен сам по себе.

Для сложных операций файлового ввода-вывода я рекомендую использовать Apache Commons IO , который предоставляет богатую библиотеку классов для (помимо прочего) файловых операций. См. Такие классы, как FileUtils и FilesystemUtils

1
ответ дан 14 December 2019 в 19:04
поделиться

Это Sun Totorial может быть хорошим началом. На вашем месте я бы в основном получил все файлы в каталоге, а затем просмотрел их в цикле, как показано здесь. Возможно, вам также придется использовать регулярные выражения, базовый учебник можно найти здесь

1
ответ дан 14 December 2019 в 19:04
поделиться

Есть класс File, который делает все, что вам нужно:

0
ответ дан 14 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: