Java Notes

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 to these methods.

Creating a

Create a class that implements the 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 {
    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 HTMLFileFilter
This 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; 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.