Class PrefixFileFilter

java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.PrefixFileFilter
All Implemented Interfaces:
FileFilter, FilenameFilter, Serializable, FileVisitor<Path>, PathFilter, PathVisitor, IOFileFilter

public class PrefixFileFilter extends AbstractFileFilter implements 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());
 
Since:
1.0
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • prefixes

      private final String[] prefixes
      The file name prefixes to search for
    • caseSensitivity

      private final IOCase caseSensitivity
      Whether the comparison is case sensitive.
  • Constructor Details

    • PrefixFileFilter

      public PrefixFileFilter(List<String> prefixes)
      Constructs a new Prefix file filter for a list of prefixes.
      Parameters:
      prefixes - the prefixes to allow, must not be null
      Throws:
      IllegalArgumentException - if the prefix list is null
      ClassCastException - if the list does not contain Strings
    • PrefixFileFilter

      public PrefixFileFilter(List<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 null
      caseSensitivity - how to handle case sensitivity, null means case-sensitive
      Throws:
      IllegalArgumentException - if the prefix list is null
      ClassCastException - if the list does not contain Strings
      Since:
      1.4
    • PrefixFileFilter

      public PrefixFileFilter(String prefix)
      Constructs a new Prefix file filter for a single prefix.
      Parameters:
      prefix - the prefix to allow, must not be null
      Throws:
      IllegalArgumentException - if the prefix is null
    • PrefixFileFilter

      public PrefixFileFilter(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:
      IllegalArgumentException - if the prefix array is null
    • PrefixFileFilter

      public PrefixFileFilter(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 null
      caseSensitivity - how to handle case sensitivity, null means case-sensitive
      Throws:
      IllegalArgumentException - if the prefix is null
      Since:
      1.4
    • PrefixFileFilter

      public PrefixFileFilter(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 null
      caseSensitivity - how to handle case sensitivity, null means case-sensitive
      Throws:
      IllegalArgumentException - if the prefix is null
      Since:
      1.4
  • Method Details

    • accept

      public boolean accept(File file)
      Checks to see if the file name starts with the prefix.
      Specified by:
      accept in interface FileFilter
      Specified by:
      accept in interface IOFileFilter
      Overrides:
      accept in class AbstractFileFilter
      Parameters:
      file - the File to check
      Returns:
      true if the file name starts with one of our prefixes
    • accept

      public boolean accept(File file, String name)
      Checks to see if the file name starts with the prefix.
      Specified by:
      accept in interface FilenameFilter
      Specified by:
      accept in interface IOFileFilter
      Overrides:
      accept in class AbstractFileFilter
      Parameters:
      file - the File directory
      name - the file name
      Returns:
      true if the file name starts with one of our prefixes
    • accept

      public FileVisitResult accept(Path file, BasicFileAttributes attributes)
      Checks to see if the file name starts with the prefix.
      Specified by:
      accept in interface IOFileFilter
      Specified by:
      accept in interface PathFilter
      Parameters:
      file - the File to check
      attributes - 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(String name)
    • toString

      public String toString()
      Provide a String representation of this file filter.
      Overrides:
      toString in class AbstractFileFilter
      Returns:
      a String representation