Java Notes
java.io.FileFilter
See File Filters.The lists of files or file names returned by the File
listFiles()
and list()
methods include all files and directories.
The files/directories that are included may be restricted by passing a
java.io.FileFilter
to these methods.
Creating a java.io.FileFilter
Create a class that implements thejavax.io.FileFilter
interface, which means that you must
define the boolean accept()
method.
For example, to create a filter that accepts all directories and
HTML files.
private class HTMLFileFilter implements java.io.FileFilter { public boolean accept(File f) { if (f.isDirectory()) return true; String name = f.getName().toLowerCase(); return name.endsWith("html") || name.endsWith("htm"); }//end accept }//end class HTMLFileFilterThis example defines the required
accept
method. always
accept directories so the user can then navigate around the file system.
The reason this code doesn't include the "." in front of the suffix is
to allow file suffixes like ".shtml", ".xhtml", ....
Using the filter
To use the filter from the example above:File f; java.io.FileFilter HTMLfilter = new HTMLFileFilter(); . . . // a value is given to f if (f.isDirectory()) { File[] children = f.listFiles(HTMLfilter); . . . }and similarly for
String[] names = f.list(HTMLfilter)
which returns
an array of strings of the names of the files in the directory.