This package defines an interface (IOFileFilter) that combines both {@link java.io.FileFilter} and {@link 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 {@link 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 {@link java.io.FileFilter} providing conditional OR logic across a list of file filters. |
| PrefixFileFilter | Filters filenames for a certain prefix. |
| 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 {@link java.io.FileFilter} and {@link 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 {@link 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.