varios una subcarpetas recorrer que manejo listar leer directorios directorio con carpetas carpeta buscar archivos arbol java directory folder java-io

java - una - ¿Cómo encontrar los subdirectorios en un directorio/carpeta?



que es dir en java (3)

Puede usar String[] directories = file.list() para enumerar todos los nombres de archivo, luego use loop para verificar cada subarchivo y use la función file.isDirectory() para obtener subdirectorios.

Por ejemplo:

File file = new File("C://Windows"); String[] names = file.list(); for(String name : names) { if (new File("C://Windows//" + name).isDirectory()) { System.out.println(name); } }

Estoy buscando una forma de obtener todos los nombres de directorios en un directorio determinado, pero no archivos.

Por ejemplo, digamos que tengo una carpeta llamada Parent , y dentro tengo 3 carpetas: Child1 Child2 y Child3 .

Quiero obtener los nombres de las carpetas, pero no me importan los contenidos o los nombres de las subcarpetas dentro de Child1, Child2, etc.

¿Hay una manera simple de hacer esto?


public static void displayDirectoryContents(File dir) { try { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) { System.out.println("Directory Name==>:" + file.getCanonicalPath()); displayDirectoryContents(file); } else { System.out.println("file Not Acess===>" + file.getCanonicalPath()); } } } catch (IOException e) { e.printStackTrace(); } }

}

==== dentro de la clase / Method proporciona File = URL ======

File currentDir = new File("/home/akshya/NetBeansProjects/"); displayDirectoryContents(currentDir); }


Si está en Java 7, puede intentar usar el soporte provisto en

package java.nio.file

Si su directorio tiene muchas entradas, podrá comenzar a listarlas sin leerlas todas en la memoria primero. lea más en el javadoc: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#newDirectoryStream(java.nio.file.Path,%20java.lang.String )

Aquí también está ese ejemplo adaptado a sus necesidades:

public static void main(String[] args) { DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() { @Override public boolean accept(Path file) throws IOException { return (Files.isDirectory(file)); } }; Path dir = FileSystems.getDefault().getPath("c:/"); try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) { for (Path path : stream) { // Iterate over the paths in the directory and print filenames System.out.println(path.getFileName()); } } catch (IOException e) { e.printStackTrace(); } }