2010-05-22 6 views
5

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

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

Edit: вопрос только в отношении части операций с файлами, я получил «получение отформатирован название» вниз :)

Edit 2: Кроме того, как я список файлов рекурсивно?

ответ

3

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

Чтобы получить список файлов рекурсивно, ваш лучший подход достаточно прост:

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

+0

Спасибо! Я узнал, как сделать это рекурсивно здесь: http://www.javapractices.com/topic/TopicAction.do?Id=68 –

+0

@Amir - LOL ... Я добавил ту же ссылку, что и пример. Я думаю, что мой вышеперечисленный алгоритм может быть немного более простым для реализации (я видел, как начинающий Java-разработчик сделал это через несколько минут) – DVK

1

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

1

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

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

Смежные вопросы