Java: однострочник для перечисления Dirs в каталоге? - PullRequest
4 голосов
/ 02 апреля 2010

Однострочник для просмотра TXT-файлов.

import java.io.File;
import java.io.FilenameFilter;
...
files = dir.listFiles(new FilenameFilter() {
           public boolean accept(File dir, String name) {
                return name.toLowerCase().endsWith(".txt");
                }
           }
        );

Источник.

Существует ли однострочник для перечисления директорий в директории?

Ответы [ 4 ]

5 голосов
/ 02 апреля 2010
public static void main (String[] args)  throws Exception {
    File dir = new File("yourDir");

    FileFilter fileFilter = new FileFilter() {
        public boolean accept(File file) {
            return file.isDirectory();
        }
    };

    File[] files  = dir.listFiles(fileFilter);

    for (File f : files)
        System.out.println( f.getName() );
}
4 голосов
/ 03 апреля 2010

Это использует Commons IO, но на самом деле это самый простой способ перечислить все имена каталогов. Он также имеет более мощный набор фильтров, которые вы можете использовать для других целей:

String[] dirNames = new File("/Users/jonathan").list(DirectoryFileFilter.INSTANCE);
for (String dirName: dirNames) 
    System.out.println("Directory Name: " + dirName);
3 голосов
/ 02 апреля 2010
import java.io.File;
import java.io.FileFilter;
...
files = dir.listFiles(new FileFilter() { 
       public boolean accept(File pathname) { 
            return pathname.isDirectory();
       } 
    });

Обратите внимание на использование listFiles(FileFilter) вместо listFiles(FilenameFilter).

0 голосов
/ 22 мая 2018

Проверьте этот код,

import java.io.File;
import java.io.FilenameFilter;

public class FileNameFilter 
{
   public static void main(String[] args) 
   {
      File fl = new File("yourDir");

      // here we are retrieving only .txt files

      FilenameFilter fnf = new FilenameFilter()
      { 
         @Override
         public boolean accept(File dir, String name)
         {
            if(name.endsWith(".txt"))
            {
               return true;
            }
            else
            {
               return false;
            }
         }
      };

      // passing "fnf" object to listFiles() method to retrieve only html files

      File[] files = fl.listFiles(fnf);

      for(File file : files) 
      {
         System.out.println(file.getName());
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...