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);
        }
    }
} 