[IO] Add FileUtils.getLastModifiedTimeComparator
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
index f652cfa..922bcee 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/io/FileUtils.java
@@ -22,6 +22,8 @@
 import java.nio.file.NotDirectoryException;
 import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
+import java.nio.file.attribute.FileTime;
+import java.util.Comparator;
 
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
@@ -146,6 +148,35 @@
 	}
 	
 	
+	private static final Comparator<Path> LAST_MODIFIED_TIME_COMPARATOR= new Comparator<>() {
+		@Override
+		public int compare(final Path o1, final Path o2) {
+			FileTime time1= null;
+			FileTime time2= null;
+			try {
+				time1= Files.getLastModifiedTime(o1);
+			}
+			catch (final IOException e) {}
+			try {
+				time2= Files.getLastModifiedTime(o2);
+			}
+			catch (final IOException e) {}
+			
+			if (time1 == null) {
+				return (time2 == null) ? 0 : 1;
+			}
+			if (time2 == null) {
+				return -1;
+			}
+			return time1.compareTo(time2);
+		}
+	};
+	
+	public static final Comparator<Path> getLastModifiedTimeComparator() {
+		return LAST_MODIFIED_TIME_COMPARATOR;
+	}
+	
+	
 	private FileUtils() {
 	}