variable ingresar gregorian fechas fecha ejemplo atributo java file sorting date

ingresar - ¿Cómo ordenar los archivos de un directorio por fecha en java?



timestamp java ejemplo (3)

Esta pregunta ya tiene una respuesta aquí:

Tengo un método que lee el contenido de los archivos ubicados en un directorio. Pero por razones funcionales, es necesario comenzar con el archivo más antiguo (indicado por la propiedad lastmodified) y terminar con el archivo más nuevo.

Este es el código de cómo abro y leo los archivos:

FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.matches("access_log.*"); } }; File folder = new File("/home/myfiles"); File[] listOfFiles = folder.listFiles(filter); for (int i = 0; i < listOfFiles.length; i++) { String sFileName = listOfFiles[i].getName(); File accessLogFile = new File(aLog.getPath(), sFileName); long time=accessLogFile.lastModified(); // do something with the file }

¿Alguien tiene una solución sobre cómo puedo ordenar rápidamente mi lista de archivos por fecha?



Usaría FileUtils en commons-io para recuperar la Colección de Archivos. Entonces aplicaría un comparador personalizado. Debería ser bastante fácil.


Edición: En java8:

Arrays.sort(files, (a, b) -> Long.compare(a.lastModified(), b.lastModified())); link

Encontré un código interesante, muy cerca de lo que necesitas, échale un vistazo (solo un rápido en la implementación de ejecución de Comparator):

File f = new File("/home/myfiles"); File [] files = f.listFiles(); Arrays.sort( files, new Comparator() { public int compare(Object o1, Object o2) { if (((File)o1).lastModified() > ((File)o2).lastModified()) { return -1; } else if (((File)o1).lastModified() < ((File)o2).lastModified()) { return +1; } else { return 0; } } });

También puede echar un vistazo a esta publicación, ver cómo resolvió el problema el tipo: ¿La mejor manera de listar archivos en Java, ordenados por fecha de modificación?