Home Java Java-tips Io 10file java.io.FileFilter

Ask Questions?

View Latest Questions

Advertisement


 
 

java.io.FileFilter
Posted on: July 26, 2006 at 12:00 AM
The lists of files or file names returned by the File listFiles() and list() methods include all files and directories.

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.

In this example code we will show you how to use the java.io.FileFilter class and only find the files ending with .htm

With the help of this example code you can selectively find the files from the file system.

In this complete example on java.io.fileFilter you will learn how to use this class correctly.

Creating a java.io.FileFilter

Create a class that implements the javax.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.

Here is the code example:
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 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;
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.
Copyleft 2003 Fred Swartz MIT License, Last update: 2003-11-01
Advertisement


DMCA.com