Categorías
I/O

Recorrer un directorio dado con sangría en Java

El siguiente código proporciona un método para recorrer de forma recursiva un directorio en Java. También imprime la jerarquía de directorios con sangría.

package com.programcreek;
 
import java.io.File;
import org.apache.commons.lang3.StringUtils;
 
public class LoopThroughADirectory {
 
	public static void main(String[] args) {
	    File[] files = new File("/home/programcreek/Desktop").listFiles();
	    showFiles(files);
	}
 
	public static void showFiles(File[] files) {
	    for (File file : files) {
	        if (file.isDirectory()) {
	        	printIndent(StringUtils.countMatches(file.getAbsolutePath(), "/")-3);
	            System.out.println("Directory: " + file.getName());
	            showFiles(file.listFiles()); // recursively call itself
	        } else {
	        	printIndent(StringUtils.countMatches(file.getAbsolutePath(), "/")-3);
	            System.out.println("File: " + file.getName());
	        }
	    }
	}
 
 
	public static void printIndent(int count){
		for(int i=0; i<count; i++){
			System.out.print("-----");
		}
	}
}

Producción:

—– Directorio: log4j
———- Archivo: log.out
———- Archivo: filec.out
———- Archivo: fileb.out
———- Archivo: filea.out
—– Archivo: archivo1
—– Archivo: archivo2

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *