Class 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:
    FileFilterUtils.prefixFileFilter(String), FileFilterUtils.prefixFileFilter(String, IOCase), Serialized Form
    • Constructor Detail

      • 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 Detail

      • 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
      • toString

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