import java.io.File; import java.util.ArrayList; import java.util.List; public class Node { String name; List children = new ArrayList<>(); public Node(String name){ this.name = name; } public void addChild(Node child){ children.add(child); } public void afficher(String indent){ System.out.println(indent + name); for(Node c : children){ c.afficher(indent + " "); // indentation augmentée } } public static Node build(File f){ Node n = new Node(f.getName()); File[] list = f.listFiles(); if(list != null){ for(File child : list){ n.addChild(build(child)); // récursion OK } } return n; } public static void main(String[] args) { if(args.length != 1){ System.out.println("Usage : java Node "); return; // éviter un crash } File fichier = new File(args[0]); Node tree = build(fichier); tree.afficher(""); } }