Class NameFileComparator

java.lang.Object
org.apache.commons.io.comparator.AbstractFileComparator
org.apache.commons.io.comparator.NameFileComparator
All Implemented Interfaces:
Serializable, Comparator<File>

public class NameFileComparator extends AbstractFileComparator implements Serializable
Compare the names of two files for order (see File.getName()).

This comparator can be used to sort lists or arrays of files by their name either in a case-sensitive, case-insensitive or system dependent case sensitive way. A number of singleton instances are provided for the various case sensitivity options (using IOCase) and the reverse of those options.

Example of a case-sensitive file name sort using the NAME_COMPARATOR singleton instance:

       List<File> list = ...
       ((AbstractFileComparator) NameFileComparator.NAME_COMPARATOR).sort(list);
 

Example of a reverse case-insensitive file name sort using the NAME_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       ((AbstractFileComparator) NameFileComparator.NAME_INSENSITIVE_REVERSE).sort(array);
 

Since:
1.4
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • NAME_COMPARATOR

      public static final Comparator<File> NAME_COMPARATOR
      Case-sensitive name comparator instance (see IOCase.SENSITIVE)
    • NAME_REVERSE

      public static final Comparator<File> NAME_REVERSE
      Reverse case-sensitive name comparator instance (see IOCase.SENSITIVE)
    • NAME_INSENSITIVE_COMPARATOR

      public static final Comparator<File> NAME_INSENSITIVE_COMPARATOR
      Case-insensitive name comparator instance (see IOCase.INSENSITIVE)
    • NAME_INSENSITIVE_REVERSE

      public static final Comparator<File> NAME_INSENSITIVE_REVERSE
      Reverse case-insensitive name comparator instance (see IOCase.INSENSITIVE)
    • NAME_SYSTEM_COMPARATOR

      public static final Comparator<File> NAME_SYSTEM_COMPARATOR
      System sensitive name comparator instance (see IOCase.SYSTEM)
    • NAME_SYSTEM_REVERSE

      public static final Comparator<File> NAME_SYSTEM_REVERSE
      Reverse system sensitive name comparator instance (see IOCase.SYSTEM)
    • caseSensitivity

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

    • NameFileComparator

      public NameFileComparator()
      Construct a case sensitive file name comparator instance.
    • NameFileComparator

      public NameFileComparator(IOCase caseSensitivity)
      Construct a file name comparator instance with the specified case-sensitivity.
      Parameters:
      caseSensitivity - how to handle case sensitivity, null means case-sensitive
  • Method Details

    • compare

      public int compare(File file1, File file2)
      Compare the names of two files with the specified case sensitivity.
      Specified by:
      compare in interface Comparator<File>
      Parameters:
      file1 - The first file to compare
      file2 - The second file to compare
      Returns:
      a negative value if the first file's name is less than the second, zero if the names are the same and a positive value if the first files name is greater than the second file.
    • toString

      public String toString()
      String representation of this file comparator.
      Overrides:
      toString in class AbstractFileComparator
      Returns:
      String representation of this file comparator