Dado un directorio, imprime todos los archivos y carpetas presentes en el árbol de directorios enraizados con el directorio dado.
Podemos recorrer iterativamente el directorio en BFS siguiendo los pasos a continuación. Creamos una cola vacía y primero ponemos en cola la ruta del directorio dada. Ejecutamos un ciclo mientras la cola no está vacía. Quitamos un elemento de la cola. Si el elemento emergente es un directorio, obtenga una lista de todos los archivos y directorios presentes en él, agregue cada directorio a la cola. Si el elemento emergente es un archivo, imprimimos su nombre.
// Java program to print all files/directories // present in a directory. import java.io.File; import java.util.LinkedList; import java.util.Queue; class FileUtils { public static void printDirsFiles(String inputDir) { /* make a queue to store files and directories */ Queue<File> queue = new LinkedList<>(); queue.add(new File(inputDir)); /* loop until queue is empty -*/ while (!queue.isEmpty()) { /* get next file/directory from the queue */ File current = queue.poll(); File[] fileDirList = current.listFiles(); if (fileDirList != null) { /* Enqueue all directories and print all files. */ for (File fd : fileDirList) { if (fd.isDirectory()) queue.add(fd); else System.out.println(fd); } } } } /* Iterative function to traverse given directory in Java using BFS*/ public static void main(String[] args) { String inputDir = "C:\\Programs"; printDirsFiles(inputDir); } }
Este artículo es una contribución de Pranav . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA