52 lines
1.4 KiB
Java
52 lines
1.4 KiB
Java
import java.io.*;
|
|
|
|
public class repertoires {
|
|
public static void main(String args[])
|
|
{
|
|
|
|
try {
|
|
|
|
File f = new File(args[0]);
|
|
System.out.println("Files are:");
|
|
|
|
Noeud test = explo(f);
|
|
afficherArbre(test);
|
|
}
|
|
catch (Exception e) {
|
|
System.err.println(e.getMessage());
|
|
}
|
|
}
|
|
|
|
private static Noeud explo(File f)
|
|
{
|
|
File[] files = f.listFiles();
|
|
Noeud root = new Noeud(f.getName());
|
|
if (files != null) {
|
|
for (File fi : files) {
|
|
Noeud node = new Noeud(fi.getName());
|
|
node.ajouterEnfant(explo(fi));
|
|
root.ajouterEnfant(root);
|
|
}
|
|
}
|
|
|
|
return root;
|
|
}
|
|
|
|
public static void afficherArbre(Noeud racine) {
|
|
afficherArbre(racine, 0);
|
|
}
|
|
|
|
private static void afficherArbre(Noeud noeud, int niveau) {
|
|
// Affiche le nœud actuel avec une indentation basée sur le niveau
|
|
StringBuilder indentation = new StringBuilder();
|
|
for (int i = 0; i < niveau; i++) {
|
|
indentation.append(" "); // Deux espaces par niveau pour l'indentation
|
|
}
|
|
System.out.println(indentation.toString() + noeud);
|
|
|
|
// Appelle récursivement la méthode pour chaque enfant du nœud actuel
|
|
for (Noeud enfant : noeud.getEnfants()) {
|
|
afficherArbre(enfant, niveau + 1);
|
|
}
|
|
}
|
|
} |