This package provides various {@link java.util.Comparator} implementations for {@link java.io.File}s.
All the compartors include convenience utility sort(File...) and
sort(List) methods.
For example, to sort the files in a directory by name:
File[] files = dir.listFiles();
NameFileComparator.NAME_COMPARATOR.sort(files);
...alternatively you can do this in one line:
File[] files = NameFileComparator.NAME_COMPARATOR.sort(dir.listFiles());
The CompositeFileComparator can be used to compare (and sort lists or arrays of files) by combining a number other comparators.
For example, to sort an array of files by type (i.e. directory or file) and then by name:
CompositeFileComparator comparator =
new CompositeFileComparator(
DirectoryFileComparator.DIRECTORY_COMPARATOR,
NameFileComparator.NAME_COMPARATOR);
File[] files = dir.listFiles();
comparator.sort(files);
The {@link java.util.Comparator} implementations have some convenience singleton(thread-safe) instances ready to use:
File.compareTo(File) method.
File.compareTo(File) method.
File.isDirectory() method (directories < files).
File.isDirectory() method (directories >files).
FilenameUtils.getExtension(String) method.
FilenameUtils.getExtension(String) method.
FilenameUtils.getExtension(String) method.
FilenameUtils.getExtension(String) method.
FilenameUtils.getExtension(String) method.
FilenameUtils.getExtension(String) method.
File.lastModified() method.
File.lastModified() method.
File.getName() method.
File.getName() method.
File.getName() method.
File.getName() method.
File.getName() method.
File.getName() method.
File.getPath() method.
File.getPath() method.
File.getPath() method.
File.getPath() method.
File.getPath() method.
File.getPath() method.
File.length() method (directories treated as zero length).
File.length() method (directories treated as zero length).
FileUtils.sizeOfDirectory(File) method
(sums the size of a directory's contents).
FileUtils.sizeOfDirectory(File) method
(sums the size of a directory's contents).