Class PathFileComparator

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

public class PathFileComparator extends AbstractFileComparator implements Serializable
Compare the path of two files for order (see File.getPath()).

This comparator can be used to sort lists or arrays of files by their path 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 path sort using the PATH_COMPARATOR singleton instance:

       List<File> list = ...
       ((AbstractFileComparator) PathFileComparator.PATH_COMPARATOR).sort(list);
 

Example of a reverse case-insensitive file path sort using the PATH_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       ((AbstractFileComparator) PathFileComparator.PATH_INSENSITIVE_REVERSE).sort(array);
 

Deprecating Serialization

Serialization is deprecated and will be removed in 3.0.

Since:
1.4
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • PATH_COMPARATOR

      public static final Comparator<File> PATH_COMPARATOR
      Case-sensitive path comparator instance (see IOCase.SENSITIVE)
    • PATH_REVERSE

      public static final Comparator<File> PATH_REVERSE
      Reverse case-sensitive path comparator instance (see IOCase.SENSITIVE)
    • PATH_INSENSITIVE_COMPARATOR

      public static final Comparator<File> PATH_INSENSITIVE_COMPARATOR
      Case-insensitive path comparator instance (see IOCase.INSENSITIVE)
    • PATH_INSENSITIVE_REVERSE

      public static final Comparator<File> PATH_INSENSITIVE_REVERSE
      Reverse case-insensitive path comparator instance (see IOCase.INSENSITIVE)
    • PATH_SYSTEM_COMPARATOR

      public static final Comparator<File> PATH_SYSTEM_COMPARATOR
      System sensitive path comparator instance (see IOCase.SYSTEM)
    • PATH_SYSTEM_REVERSE

      public static final Comparator<File> PATH_SYSTEM_REVERSE
      Reverse system sensitive path comparator instance (see IOCase.SYSTEM)
    • ioCase

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

    • PathFileComparator

      public PathFileComparator()
      Constructs a case-sensitive file path comparator instance.
    • PathFileComparator

      public PathFileComparator(IOCase ioCase)
      Constructs a file path comparator instance with the specified case-sensitivity.
      Parameters:
      ioCase - how to handle case sensitivity, null means case-sensitive
  • Method Details

    • compare

      public int compare(File file1, File file2)
      Compares the paths of two files 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 path is less than the second, zero if the paths are the same and a positive value if the first files path 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