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 ()
.