Package org.apache.commons.io.filefilter

This package defines an interface (IOFileFilter) that combines both java.io.FileFilter and java.io.FilenameFilter.

Interface Summary

ConditionalFileFilter Defines operations for conditional file filters.
IOFileFilter An interface which brings the FileFilter and FilenameFilter interfaces together.

Class Summary

AbstractFileFilter An abstract class which implements the Java FileFilter and FilenameFilter interfaces via the IOFileFilter interface.
AgeFileFilter Filters files based on a cutoff time, can filter either newer files or files equal to or older.
AndFileFilter A java.io.FileFilter providing conditional AND logic across a list of file filters.
CanReadFileFilter This filter accepts Files that can be read.
CanWriteFileFilter This filter accepts Files that can be written to.
DelegateFileFilter This class turns a Java FileFilter or FilenameFilter into an IO FileFilter.
DirectoryFileFilter This filter accepts Files that are directories.
EmptyFileFilter This filter accepts files or directories that are empty.
FalseFileFilter A file filter that always returns false.
FileFileFilter This filter accepts Files that are files (not directories).
FileFilterUtils Useful utilities for working with file filters.
HiddenFileFilter This filter accepts Files that are hidden.
NameFileFilter Filters filenames for a certain name.
NotFileFilter This filter produces a logical NOT of the filters specified.
OrFileFilter A java.io.FileFilter providing conditional OR logic across a list of file filters.
PrefixFileFilter Filters filenames for a certain prefix.
RegexFileFilter Filters files using supplied regular expression(s).
SizeFileFilter Filters files based on size, can filter either smaller files or files equal to or larger than a given threshold.
SuffixFileFilter Filters files based on the suffix (what the filename ends with).
TrueFileFilter A file filter that always returns true.
WildcardFileFilter Filters files using the supplied wildcards.
WildcardFilter Filters files using the supplied wildcards.
This package defines an interface (IOFileFilter) that combines both java.io.FileFilter and java.io.FilenameFilter. Besides that the package offers a series of ready-to-use implementations of the IOFileFilter interface including implementation that allow you to combine other such filters.

These filter can be used to list files or in java.awt.FileDialog, for example.

There are a number of 'primitive' filters:

DirectoryFilterOnly accept directories
PrefixFileFilterFilter based on a prefix
SuffixFileFilterFilter based on a suffix
NameFileFilterFilter based on a filename
WildcardFileFilterFilter based on wildcards
AgeFileFilterFilter based on last modified time of file
SizeFileFilterFilter based on file size

And there are five 'boolean' filters:

TrueFileFilterAccept all files
FalseFileFilterAccept no files
NotFileFilterApplies a logical NOT to an existing filter
AndFileFilterCombines two filters using a logical AND
OrFileFilterCombines two filter using a logical OR

These boolean FilenameFilters can be nested, to allow arbitrary expressions. For example, here is how one could print all non-directory files in the current directory, starting with "A", and ending in ".java" or ".class":

File dir = new File(".");
String[] files = dir.list( 
new AndFileFilter(
new AndFileFilter(
new PrefixFileFilter("A"),
new OrFileFilter(
new SuffixFileFilter(".class"),
new SuffixFileFilter(".java")
)
),
new NotFileFilter(
new DirectoryFileFilter()
)
)
);
for ( int i=0; i<files.length; i++ ) {
System.out.println(files[i]);
}

This package also contains a utility class: FileFilterUtils. It allows you to use all file filters without having to put them in the import section. Here's how the above example will look using FileFilterUtils:

File dir = new File(".");
String[] files = dir.list( 
FileFilterUtils.andFileFilter(
FileFilterUtils.andFileFilter(
FileFilterUtils.prefixFileFilter("A"),
FileFilterUtils.orFileFilter(
FileFilterUtils.suffixFileFilter(".class"),
FileFilterUtils.suffixFileFilter(".java")
)
),
FileFilterUtils.notFileFilter(
FileFilterUtils.directoryFileFilter()
)
)
);
for ( int i=0; i<files.length; i++ ) {
System.out.println(files[i]);
}

There are a few other goodies in that class so please have a look at the documentation in detail.


Copyright (c) 2002-2008 Apache Software Foundation