(FIFOの原則)のファイルに対していくつかの操作を実行するために、Javaで最初に最も古いものとしてディレクトリ内のファイルをソートしたいと思います。このために、私は各ハエオブジェクトでlastmodifiedメソッドを使用し、次にコンパレータを介してそれらをコマッピングします。これにより、以下のようなソートされたリストが得られます。
public static ArrayList<File> sortListAscending(ArrayList<File> list) {
Collections.sort(list, new Comparator<File>() {
public int compare(final File o1, final File o2) {
return new Long(((File) o1).lastModified()).compareTo(new Long(
((File) o2).lastModified()));
}
});
return list;
}
これをWindowsで実行すると、13桁のタイムスタンプが返されますが、UNIXではタイムスタンプはミリ秒までではありません。したがって、上記の方法は、その1秒の時間枠でディレクトリに入ったファイルのUNIXで失敗します。
回避策を提案してください。