Ordenación de ficheros en un directorio
20 de noviembre de 2008Los métodos list y listFiles, aplicables a un objeto de tipo File, no aseguran el orden en el que se devuelven los contenidos de un directorio.
Si se desea que el listado de ficheros tenga un orden determinado, es necesario realizar una ordenación posteriormente.
A continuación presentamos dos tipos de ordenación. La primera devuelve los resultados en orden por fecha de modificación. La segunda es un tanto especial, ya que devuelve siempre en primer lugar, si existe, un fichero del que se conoce previamente el nombre, y el resto de resultados los ordena alfabéticamente.
?Ver código JAVA
File[] filesPorFecha = directory.listFiles(); Arrays.sort(filesPorFecha, new Comparator<File>(){ public int compare(File f1, File f2){ return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified()); } }); |
?Ver código JAVA
String[] filesPorNombre = directory.list(); Arrays.sort(filesPorNombre, new Comparator<String>(){ public int compare(String f1, String f2){ if (!f1.equals(f2) && f1.equals("nombredelfichero")){ return -1; }else if (!f1.equals(f2) && f2.equals("nombredelfichero")){ return 1; }else{ return f1.compareTo(f2); } } }); |