The LastModifiedFileComparator.LASTMODIFIED_COMPARATOR
and LastModifiedFileComparator.
LASTMODIFIED_REVERSE
Comparator singleton instances in the Apache Commons IO library can be used to sort arrays or collections of files according to their last-modified dates.
Please follow below steps:
- You need to add
commons-io-2.6.jar
file into your Java Project’s class path. - If you are on Mac OS X then you need to create a temp folder under Downloads, i.e. /Users/<username>/Downloads/CrunchifyTest
- Create two files Crunchify_Test1.txt and Crunchify_Test2.txt
If you have maven project then add below pom.xml maven dependency.
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
Here is a complete Java Program:
package com.crunchify.tutorials; import org.apache.commons.io.comparator.LastModifiedFileComparator; import java.io.File; import java.util.Arrays; import java.util.Date; /** * @author Crunchify.com * */ public class CrunchifySortFileLastModifiedTime { public static void main(String[] args) { File dir = new File("/Users/<username>/Downloads/CrunchifyTest"); File[] files = dir.listFiles(); System.out.println("Sort files in ascending order base on last modification date"); Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR); for (int i = 0; i < files.length; i++) { File file = files[i]; System.out.printf("File: %s - " + new Date(file.lastModified()) + "\n", file.getName()); } System.out.println("\nSort files in descending order base on last modification date"); Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE); for (int i = 0; i < files.length; i++) { File file = files[i]; System.out.printf("File: %s - " + new Date(file.lastModified()) + "\n", file.getName()); } } }
Other must read:
- Java: Create a Timer Object for Future Execution in a Background Thread
- How to Start/Spawn New Thread in Background in Java
Output:
Here is an Eclipse Console result. Just run it as a Java Application.
Sort files in ascending order base on last modification date File: Crunchify_Test1.txt - Fri Jul 05 10:24:08 PDT 2013 File: Crunchify_Test2.txt - Fri Jul 05 10:25:03 PDT 2013 Sort files in descending order base on last modification date File: Crunchify_Test2.txt - Fri Jul 05 10:25:03 PDT 2013 File: Crunchify_Test1.txt - Fri Jul 05 10:24:08 PDT 2013
Let me know if you find better ways to sort list of files via comment below.