Главная » Java » FilenameFilter и FileFilter в Java

0

 

  Интерфейс FilenameFilter предусматривает возможность создания объекта, Фильтрующего список файлов в соответствии с заданным критерием. В составе интерфейса объявлен единственный метод, описанный ниже.

 

boolean accept(File dir,   String name)

Возвращает  true,  если файл с именем  name,  принадлежащий  каталогу

dir, удовлетворяет критерию фильтрации.

   Рассмотрим пример реализации интерфейса FilenameFilter, которая позволяет получить список подкаталогов заданного каталога:

 

import java.io.*;

class DirFilter implements  FilenameFilter {

public boolean accept(File dir,   string name)   {

   return new FileCdir,   name) .isDirectory() ;

 }

public static void main(string[]   args)   {

File dir = new File(args[O]);

String[]   files = dir.list(new Di rFilterO) ;

 System.out.println(files.length + "  каталогов:");

 for  (int i  = 0;   i   < files.length;   i++)

 System.out.println("\t" + files[i]);

 }

}

Вначале создается объект File, представляющий каталог, имя которого задано в виде параметра командной строки. Затем создается объект Di rFilter и в качестве аргумента передается методу list, который, отыскивая в каталоге очередное имя файла, вызывает для него метод accept объекта фильтрации и включает имя в итоговый список, если accept возвращает значение true. Наш вариант метода accept возвращает true, если заданному имени соответствует подкаталог.

   Интерфейс FileFilter аналогичен, но соответствующий метод accept работает с единственным объектом File.

boolean accept(File pathname)

Возвращает true, если файл,  представляемый объектом pathname типа File, удовлетворяет критерию фильтрации.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии