Как получить имя всего файла в каталоге и подкаталог в Java - PullRequest
2 голосов
/ 09 января 2012

У меня есть каталог, который состоит из нескольких разных подкаталогов, в каждом из которых есть несколько файлов.как я могу получить имя всего файла?

Ответы [ 6 ]

7 голосов
/ 09 января 2012

Если вы хотите использовать библиотеку, попробуйте метод listFiles из apache commons io FileUtils , который вернется в каталоги для вас.

Вот примеро том, как вы могли бы вызвать его, чтобы найти все файлы с именами *.dat и *.txt в любом каталоге в любом месте указанного начального каталога:

Collection<File> files = FileUtils.listFiles(new File("my/dir/path"), {"dat", "txt"}, true);
3 голосов
/ 09 января 2012
public static void walkin(File dir) {
                String pattern = "file pattern"; //for example ".java"

                File listFile[] = dir.listFiles();
                if(listFile != null) {
                        for(int i=0; i<listFile.length; i++) {
                                if(listFile[i].isDirectory()) {
                                        walkin(listFile[i]);
                                } else {
                                        if(listFile[i].getName().endsWith(pattern))
                                        {
                                                System.out.println(listFile[i].getPath());
                                        }
                                }
                        }
                }
        }
1 голос
/ 09 января 2012

Чтобы вывести каталог с помощью Java, сделайте что-то похожее на это

File dir = new File(fname);
String[] list = dir.list();

if(list == null){
  System.out.println("Specified directory does not exist or is not a directory.");
  System.exit(0);
}else{
  //list the directory content
  for(int i = 0; i < chld.length; i++){
  String fileName = list[i];
  System.out.println(fileName);
}

Большая часть этого кода взята отсюда, http://www.roseindia.net/java/beginners/DirectoryListing.shtml

1 голос
/ 09 января 2012

Вы ищете File.list () для более подробной информации о javadoc.

1 голос
/ 09 января 2012

Выполните поиск по структуре каталогов, собрав имена всех файлов, которые не являются подкаталогами.

0 голосов
/ 09 января 2012

Использование Apache Commons

String filePath = "/apps/fraud";
String[] acceptedExtension = {"ctl","otl","dat","csv","xls"};
String[] acceptedFolders = {"suresh","dir","kernel"};

Collection fileList =  FileUtils.listFiles(
                 new File(filePath), 
                 new SuffixFileFilter(acceptedExtension) ,
                 new NameFileFilter(acceptedFolders) 
                );
...