[C#] Parcours de dossier + Treeview récursif
Résolu
greg
-
djoufack beatrice -
djoufack beatrice -
Bonjour,
Je cherche actuellement à faire un Treeview m'affichant récursivement les dossiers et sous dossiers contenus dans un dossier racine.
Le parcours des dossiers s'effectuent normalement, tous les dossiers sont bien parcourus mais c'est le Treeview qui coince, en effet, mon noeud racine marche correctement mais tous les autres dossiers s'affichent sur le même nœud.
Cela donne un truc du genre:
---racine
-----parent1
-----enfant1
-----enfant2
-----enfant[n]
-----parent2
-----enfant1
-----enfant2
-----enfant[n]
etc...
Et moi, je voudrais dans le genre:
---racine
-----parent1
--------enfant1
--------enfant2
--------enfant[n]
-----parent2
--------enfant1
--------enfant2
--------enfant[n]
En sachant que chaque enfant peut lui même encore avoir des enfants.
La fonction récursive:
L'événement chargement du form:
Si quelqu'un à ne serait-ce qu'une seule idée je suis preneur parce que la je patauge et tourne en rond.
Je vous remercie d'avance pour vos réponses,
Cordialement.
Je cherche actuellement à faire un Treeview m'affichant récursivement les dossiers et sous dossiers contenus dans un dossier racine.
Le parcours des dossiers s'effectuent normalement, tous les dossiers sont bien parcourus mais c'est le Treeview qui coince, en effet, mon noeud racine marche correctement mais tous les autres dossiers s'affichent sur le même nœud.
Cela donne un truc du genre:
---racine
-----parent1
-----enfant1
-----enfant2
-----enfant[n]
-----parent2
-----enfant1
-----enfant2
-----enfant[n]
etc...
Et moi, je voudrais dans le genre:
---racine
-----parent1
--------enfant1
--------enfant2
--------enfant[n]
-----parent2
--------enfant1
--------enfant2
--------enfant[n]
En sachant que chaque enfant peut lui même encore avoir des enfants.
La fonction récursive:
private void Browse (DirectoryInfo dir, TreeNode current) { FileSystemInfo[] f = dir.GetFileSystemInfos() ; foreach ( FileSystemInfo i in f ){ if (i.GetType().ToString()== "System.IO.DirectoryInfo") { current.Nodes.Add(i.Name); DirectoryInfo di = new DirectoryInfo(i.FullName); Browse(di,current); } } }
L'événement chargement du form:
private void Form1_Load(object sender, System.EventArgs e) { string path = @"C:\TEST_ROOT\TEST_FILES\TEST"; DirectoryInfo dir = new DirectoryInfo(path); TreeNode root = TV.Nodes.Add(dir.Name); Browse(dir,root); }
Si quelqu'un à ne serait-ce qu'une seule idée je suis preneur parce que la je patauge et tourne en rond.
Je vous remercie d'avance pour vos réponses,
Cordialement.
A voir également:
- [C#] Parcours de dossier + Treeview récursif
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Dossier démarrage - Guide
- Dossier rar - Guide
5 réponses
A force de recherche j'ai fini par trouver ma solution.
la fonction récursive:
L'événement:
Si ça peu être utile à quelqu'un.
Comme quoi fallait pas chercher à faire compliquer....
la fonction récursive:
private void Browse(string _path, TreeNode _node){ DirectoryInfo dirRoot = new DirectoryInfo(_path); foreach(DirectoryInfo nextFolder in dirRoot.GetDirectories()) { TreeNode dirNode = _node.Nodes.Add (nextFolder.Name); Browser (nextFolder.FullName, dirNode); } }
L'événement:
private void Form1_Load(object sender, System.EventArgs e) { string path = @"C:\TEST_DIR\TEST_FILES\TEST"; TreeNode root = TV.Nodes.Add("TEST"); Browser(path,root); }
Si ça peu être utile à quelqu'un.
Comme quoi fallait pas chercher à faire compliquer....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question