This package defines an interface (IOFileFilter) that combines both java.io.FileFilter and java.io.FilenameFilter.
See: Description
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 File s that can be read.
|
CanWriteFileFilter |
This filter accepts File s that can be written to.
|
DelegateFileFilter | This class turns a Java FileFilter or FilenameFilter into an IO FileFilter. |
DirectoryFileFilter |
This filter accepts File s 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 File s that are files (not directories).
|
FileFilterUtils | Useful utilities for working with file filters. |
HiddenFileFilter |
This filter accepts File s 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:
DirectoryFilter | Only accept directories |
PrefixFileFilter | Filter based on a prefix |
SuffixFileFilter | Filter based on a suffix |
NameFileFilter | Filter based on a filename |
WildcardFileFilter | Filter based on wildcards |
AgeFileFilter | Filter based on last modified time of file |
SizeFileFilter | Filter based on file size |
And there are five 'boolean' filters:
TrueFileFilter | Accept all files |
FalseFileFilter | Accept no files |
NotFileFilter | Applies a logical NOT to an existing filter |
AndFileFilter | Combines two filters using a logical AND |
OrFileFilter | Combines 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.