Chcę uzyskać listę plików w katalogu, ale chcę posortować ją tak, aby najstarsze pliki były pierwsze. Moim rozwiązaniem było wywołanie File.listFiles i po prostu skorzystanie z listy opartej na File.lastModified, ale zastanawiałem się, czy istnieje lepszy sposób.
Moje obecne rozwiązanie:
File[] files = directory.listFiles();
Arrays.sort(files, new Comparator<File>(){
public int compare(File f1, File f2)
{
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
} });
1 odpowiedź
Twoje rozwiązanie jest jedynym rozsądnym sposobem. Sposobem na uzyskanie listy plików jest użycie File.listFiles (), ale dokumentacja stwierdza, że nie daje to żadnych gwarancji co do kolejności zwracanych plików. Dlatego musisz napisać Komparator, który używa File.lastModified () i przekazać go wraz z tablicą plików doArrays.sort ().