Package org.apache.commons.io.filefilter
Class PrefixFileFilter
- java.lang.Object
-
- org.apache.commons.io.filefilter.AbstractFileFilter
-
- org.apache.commons.io.filefilter.PrefixFileFilter
-
- All Implemented Interfaces:
java.io.FileFilter
,java.io.FilenameFilter
,java.io.Serializable
,java.nio.file.FileVisitor<java.nio.file.Path>
,PathFilter
,PathVisitor
,IOFileFilter
public class PrefixFileFilter extends AbstractFileFilter implements java.io.Serializable
Filters file names for a certain prefix.For example, to print all files and directories in the current directory whose name starts with
Test
:Using Classic IO
File dir = new File("."); String[] files = dir.list(new PrefixFileFilter("Test")); for (String file : files) { System.out.println(file); }
Using NIO
final Path dir = Paths.get(""); final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new PrefixFileFilter("Test")); // // 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());
-
-
Field Summary
Fields Modifier and Type Field Description private IOCase
caseSensitivity
Whether the comparison is case sensitive.private java.lang.String[]
prefixes
The file name prefixes to search forprivate static long
serialVersionUID
-
Fields inherited from interface org.apache.commons.io.filefilter.IOFileFilter
EMPTY_STRING_ARRAY
-
-
Constructor Summary
Constructors Constructor Description PrefixFileFilter(java.lang.String prefix)
Constructs a new Prefix file filter for a single prefix.PrefixFileFilter(java.lang.String... prefixes)
Constructs a new Prefix file filter for any of an array of prefixes.PrefixFileFilter(java.lang.String[] prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for any of an array of prefixes specifying case-sensitivity.PrefixFileFilter(java.lang.String prefix, IOCase caseSensitivity)
Constructs a new Prefix file filter for a single prefix specifying case-sensitivity.PrefixFileFilter(java.util.List<java.lang.String> prefixes)
Constructs a new Prefix file filter for a list of prefixes.PrefixFileFilter(java.util.List<java.lang.String> prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for a list of prefixes specifying case-sensitivity.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(java.io.File file)
Checks to see if the file name starts with the prefix.boolean
accept(java.io.File file, java.lang.String name)
Checks to see if the file name starts with the prefix.private boolean
accept(java.lang.String name)
java.nio.file.FileVisitResult
accept(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
Checks to see if the file name starts with the prefix.java.lang.String
toString()
Provide a String representation of this file filter.-
Methods inherited from class org.apache.commons.io.filefilter.AbstractFileFilter
handle, postVisitDirectory, preVisitDirectory, toFileVisitResult, visitFile, visitFileFailed
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.commons.io.filefilter.IOFileFilter
and, negate, or
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
prefixes
private final java.lang.String[] prefixes
The file name prefixes to search for
-
caseSensitivity
private final IOCase caseSensitivity
Whether the comparison is case sensitive.
-
-
Constructor Detail
-
PrefixFileFilter
public PrefixFileFilter(java.util.List<java.lang.String> prefixes)
Constructs a new Prefix file filter for a list of prefixes.- Parameters:
prefixes
- the prefixes to allow, must not be null- Throws:
java.lang.IllegalArgumentException
- if the prefix list is nulljava.lang.ClassCastException
- if the list does not contain Strings
-
PrefixFileFilter
public PrefixFileFilter(java.util.List<java.lang.String> prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for a list of prefixes specifying case-sensitivity.- Parameters:
prefixes
- the prefixes to allow, must not be nullcaseSensitivity
- how to handle case sensitivity, null means case-sensitive- Throws:
java.lang.IllegalArgumentException
- if the prefix list is nulljava.lang.ClassCastException
- if the list does not contain Strings- Since:
- 1.4
-
PrefixFileFilter
public PrefixFileFilter(java.lang.String prefix)
Constructs a new Prefix file filter for a single prefix.- Parameters:
prefix
- the prefix to allow, must not be null- Throws:
java.lang.IllegalArgumentException
- if the prefix is null
-
PrefixFileFilter
public PrefixFileFilter(java.lang.String... prefixes)
Constructs a new Prefix file filter for any of an array of prefixes.The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.
- Parameters:
prefixes
- the prefixes to allow, must not be null- Throws:
java.lang.IllegalArgumentException
- if the prefix array is null
-
PrefixFileFilter
public PrefixFileFilter(java.lang.String prefix, IOCase caseSensitivity)
Constructs a new Prefix file filter for a single prefix specifying case-sensitivity.- Parameters:
prefix
- the prefix to allow, must not be nullcaseSensitivity
- how to handle case sensitivity, null means case-sensitive- Throws:
java.lang.IllegalArgumentException
- if the prefix is null- Since:
- 1.4
-
PrefixFileFilter
public PrefixFileFilter(java.lang.String[] prefixes, IOCase caseSensitivity)
Constructs a new Prefix file filter for any of an array of prefixes specifying case-sensitivity.- Parameters:
prefixes
- the prefixes to allow, must not be nullcaseSensitivity
- how to handle case sensitivity, null means case-sensitive- Throws:
java.lang.IllegalArgumentException
- if the prefix is null- Since:
- 1.4
-
-
Method Detail
-
accept
public boolean accept(java.io.File file)
Checks to see if the file name starts with the prefix.- Specified by:
accept
in interfacejava.io.FileFilter
- Specified by:
accept
in interfaceIOFileFilter
- Overrides:
accept
in classAbstractFileFilter
- Parameters:
file
- the File to check- Returns:
- true if the file name starts with one of our prefixes
-
accept
public boolean accept(java.io.File file, java.lang.String name)
Checks to see if the file name starts with the prefix.- Specified by:
accept
in interfacejava.io.FilenameFilter
- Specified by:
accept
in interfaceIOFileFilter
- Overrides:
accept
in classAbstractFileFilter
- Parameters:
file
- the File directoryname
- the file name- Returns:
- true if the file name starts with one of our prefixes
-
accept
public java.nio.file.FileVisitResult accept(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
Checks to see if the file name starts with the prefix.- Specified by:
accept
in interfaceIOFileFilter
- Specified by:
accept
in interfacePathFilter
- Parameters:
file
- the File to checkattributes
- the file's basic attributes (TODO may be null).- Returns:
- true if the file name starts with one of our prefixes
- Since:
- 2.9.0
-
accept
private boolean accept(java.lang.String name)
-
toString
public java.lang.String toString()
Provide a String representation of this file filter.- Overrides:
toString
in classAbstractFileFilter
- Returns:
- a String representation
-
-