java: Sortowanie plików na podstawie daty utworzenia
Próbuję odczytać 10 ostatnich plików na podstawie daty ich utworzenia.
Próbowałem z tym kodem, ale nie działa, to znaczy, nie pokazuje nowych nazw plików na wyjściu, kiedy dodam nowe pliki.
<code>import java.io.File; import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) { File inboxDir = new File("D:\\SPOTO"); File[] files = inboxDir.listFiles(); Arrays.sort( files, new Comparator() { public int compare(Object o1, Object o2) { return new Long(((File)o1).lastModified()).compareTo(new Long(((File) o2).lastModified())); } }); for(int i=0;i<10;i++) { System.out.println(files[i].getName()); } } } </code>
Próbowałem nawet z apache commons io, ale to też nie działa (oznacza, że nowe pliki nie są wyświetlane podczas tworzenia nowych plików w tym katalogu)
To jest moja wersja Apache we io
<code>import org.apache.commons.io.comparator.LastModifiedFileComparator; import java.io.File; import java.util.Arrays; public class Main { public static void main(String[] args) { File dir = new File("c:\\"); File[] files = dir.listFiles(); Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR); for (int i = 0; i < files.length; i++) { File file = files[i]; System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(), file.lastModified()); } Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE); for (int i = 0; i < files.length; i++) { File file = files[i]; System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(), file.lastModified()); } } } </code>