FileFilter and FilenameFilter.See: Description
| Interface | Description |
|---|---|
| ConditionalFileFilter |
Defines operations for conditional file filters.
|
| IOFileFilter |
An interface which brings the FileFilter, FilenameFilter, and PathFilter interfaces together.
|
| Class | Description |
|---|---|
| AbstractFileFilter |
Abstracts the implementation of the
FileFilter (IO), FilenameFilter (IO), PathFilter (NIO)
interfaces via our own IOFileFilter interface. |
| AgeFileFilter |
Filters files based on a cutoff time, can filter either newer files or files equal to or older.
|
| AndFileFilter |
A
FileFilter providing conditional AND logic across a list of
file filters. |
| CanExecuteFileFilter |
This filter accepts
Files that can be executed. |
| 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.
|
| FileEqualsFileFilter |
Accepts only an exact
File object match. |
| 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. |
| MagicNumberFileFilter |
File filter for matching files containing a "magic number".
|
| NameFileFilter |
Filters file names for a certain name.
|
| NotFileFilter |
This filter produces a logical NOT of the filters specified.
|
| OrFileFilter |
A
FileFilter providing conditional OR logic across a list of file filters. |
| PathEqualsFileFilter |
Accepts only an exact
Path object match. |
| PathVisitorFileFilter |
A file filter backed by a path visitor.
|
| PrefixFileFilter |
Filters file names 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 file name ends with).
|
| SymbolicLinkFileFilter |
This filter accepts
Files that are symbolic links. |
| TrueFileFilter |
A file filter that always returns true.
|
| WildcardFileFilter |
Filters files using the supplied wildcards.
|
| WildcardFilter | Deprecated
Use WildcardFileFilter.
|
This package defines an interface (IOFileFilter) that combines both
FileFilter and 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 FileDialog,
for example.
| 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 |
| 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]);
}
You can alternatively build a filter tree using the "and", "or", and "not" methods on filters themselves:
File dir = new File(".");
String[] files = dir.list(
new AndFileFilter(
new PrefixFileFilter("A").and(
new SuffixFileFilter(".class").or(new SuffixFileFilter(".java"))),
new DirectoryFileFilter().not()
)
);
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]);
}
You can combine Java file tree walking by using java.nio.file.Files.walk() APIs with filters:
final Path dir = Paths.get("");
// We are interested in files older than one day
final long cutoff = System.currentTimeMillis() - (24 * 60 * 60 * 1000);
final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new AgeFileFilter(cutoff));
//
// Walk one dir
Files.walkFileTree(dir, Collections.emptySet(), 1, visitor);
System.out.println(visitor.getPathCounters());
System.out.println(visitor.getFileList());
//
visitor.getPathCounters().reset();
//
// Walk dir tree
Files.walkFileTree(dir, visitor);
System.out.println(visitor.getPathCounters());
System.out.println(visitor.getDirList());
System.out.println(visitor.getFileList());
There are a few other goodies in that class so please have a look at the documentation in detail.
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.