Возможный дубликат:
Лучший способ итерации через каталог в java?
Я хочу обрабатывать каждый файл в определенном каталоге с помощью Java.
Каков самый простой (и наиболее распространенный) способ сделать это?
Возможный дубликат:
Лучший способ итерации через каталог в java?
Я хочу обрабатывать каждый файл в определенном каталоге с помощью Java.
Каков самый простой (и наиболее распространенный) способ сделать это?
Если у вас есть имя каталога в myDirectoryPath
,
import java.io.File;
...
File dir = new File(myDirectoryPath);
File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
// Do something with child
}
} else {
// Handle the case where dir is not really a directory.
// Checking dir.isDirectory() above would not be sufficient
// to avoid race conditions with another process that deletes
// directories.
}
Я думаю, существует так много способов сделать то, что вы хотите. Вот путь, который я использую. С помощью библиотеки commons.io
вы можете перебирать файлы в каталоге. Вы должны использовать метод FileUtils.iterateFiles
, и вы можете обрабатывать каждый файл.
Вы можете найти информацию здесь: http://commons.apache.org/proper/commons-io/download_io.cgi
Вот пример:
Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false);
while(it.hasNext()){
System.out.println(((File) it.next()).getName());
}
Вы можете изменить null
и поместить список расширений, если хотите фильтровать. Пример: {".xml",".java"}
Вот пример, в котором перечислены все файлы на моем рабочем столе. вы должны изменить переменную пути на свой путь.
Вместо того, чтобы печатать имя файла с помощью System.out.println, вы должны поместить свой собственный код для работы с файлом.
public static void main(String[] args) {
File path = new File("c:/documents and settings/Zachary/desktop");
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){ //this line weeds out other directories/folders
System.out.println(files[i]);
}
}
}
Используйте java.io.File.listFiles
Или
Если вы хотите отфильтровать список до итерации (или в более сложном случае использования), используйте apache-commons FileUtils. FileUtils.listFiles