tutorial read example ejemplos definicion java java-io

java - read - cómo File.listFiles en orden alfabético?



java read (2)

Creo que la respuesta anterior es la mejor manera de hacerlo aquí es otra manera simple. solo para imprimir los resultados ordenados

String path="/tmp"; String[] dirListing = null; File dir = new File(path); dirListing = dir.list(); Arrays.sort(dirListing); System.out.println(Arrays.deepToString(dirListing));

Tengo el código como a continuación:

class ListPageXMLFiles implements FileFilter { @Override public boolean accept(File pathname) { DebugLog.i("ListPageXMLFiles", "pathname is " + pathname); String regex = ".*page_//d{2}//.xml"; if(pathname.getAbsolutePath().matches(regex)) { return true; } return false; } } public void loadPageTrees(String xml_dir_path) { ListPageXMLFiles filter_xml_files = new ListPageXMLFiles(); File XMLDirectory = new File(xml_dir_path); for(File _xml_file : XMLDirectory.listFiles(filter_xml_files)) { loadPageTree(_xml_file); } }

FileFilter funciona bien, pero listFiles() parece listar los archivos en orden alfabético inverso. ¿Hay alguna manera rápida de decirle a listFile() que liste los archivos en orden alfabético?


El método listFiles , con o sin filtro no garantiza ningún orden.

Sin embargo, devuelve una matriz, que puede ordenar con Arrays.sort() .

File[] files = XMLDirectory.listFiles(filter_xml_files); Arrays.sort(files); for(File _xml_file : files) { ... }

Esto funciona porque File es una clase comparable, que ordena de forma predeterminada las rutas de acceso lexicográficamente. Si desea ordenarlos de manera diferente, puede definir su propio comparador.