Получить количество файлов в папке, пропуская подпапки - PullRequest
1 голос
/ 18 ноября 2010

Есть ли способ получить количество файлов в папке, используя Java?Возможно, мой вопрос выглядит просто, но я новичок в этой области на Java!

Обновление:

Я видел ссылку в комментарии.Они не объяснили, чтобы пропустить подпапки в целевой папке.Как это сделать?Как опустить подпапки и получить файлы в указанном каталоге?

Есть предложения !!

Ответы [ 3 ]

9 голосов
/ 18 ноября 2010

Один подход с использованием чистой Java:который принимает FileFilter.FileFilter принимает файл.Вы можете проверить, является ли файл каталогом, и вернуть false, если это так.

int nFiles = new File(filename).listFiles( new MyFileFilter() ).length;

...

private static class MyFileFilter extends FileFilter {
  public boolean accept(File pathname) {
     return ! pathname.isDirectory();
  }
}
1 голос
/ 18 ноября 2010

Вам нужно будет использовать класс File. Вот пример .

0 голосов
/ 16 января 2016

Этот метод позволяет вам подсчитывать файлы внутри папки, не загружая все файлы в память сразу (что хорошо, если учесть папки с большим количеством файлов, которые могут привести к сбою вашей программы), и вы можете дополнительно проверить расширение файла и т. Д., Если вы Поставьте дополнительное условие рядом с f.isFile ().

import org.apache.commons.io.FileUtils;
private int countFilesInDir(File dir){
    int cnt = 0;
    if( dir.isDirectory() ){
        Iterator it = FileUtils.iterateFiles(dir, null, false);
        while(it.hasNext()){
            File f = (File) it.next();
            if (f.isFile()){ //this line weeds out other directories/folders
                cnt++;
            }
        }
    }
    return cnt;
}

Здесь вы можете скачать библиотеку commons-io: https://commons.apache.org/proper/commons-io/

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