Файловые операции в Java - PullRequest
5 голосов
/ 23 мая 2010

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

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

Редактировать: вопрос только по части файловых операций, я получил "получить отформатированное имя":)

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

Ответы [ 4 ]

3 голосов
/ 23 мая 2010

Использование 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]"
}

ОБНОВЛЕНИЕ

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

  • Создать очередь каталогов. Сначала добавьте первый каталог в очередь
  • Вытащите первый элемент каталога из очереди.
  • Список всех файлов в этом каталоге, как указано выше
  • Перебирать все файлы в этом каталоге
  • Если файл является каталогом (используйте метод 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

1 голос
/ 23 мая 2010

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

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

1 голос
/ 23 мая 2010

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

0 голосов
/ 23 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...