Bonjour,
Je cherche a afficher le contenu d'un répertoire par exemple c:\ dans un treeview
Ce treeview je souhaite qu'il affiche tous les dossier et fichiers sous-jacent en cliquant sur le noeud dossier
Mon code affiche les dossiers et fichiers mais cliquable sur le noeud principal
Imports System.IO
Public Class Form1 Const _RepertoireALister As String = "c:" Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load TreeView1.TopNode = TreeView1.Nodes.Add(_RepertoireALister, _RepertoireALister) For Each _Dossier As String In Directory.GetDirectories(_RepertoireALister) TreeView1.TopNode.Nodes.Add(_Dossier, Path.GetFileName(_Dossier)) For Each _Fichier As String In Directory.GetFiles(_RepertoireALister) TreeView1.TopNode.Nodes.Add(_Fichier, Path.GetFileName(_Fichier)) Next Next End Sub End Class
Public Class Form1 Const _RepertoireALister As String = "." Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.TreeView1.TopNode = Me.TreeView1.Nodes.Add(_RepertoireALister, _RepertoireALister) For Each _Dossier As String In Directory.GetDirectories(_RepertoireALister) Me.TreeView1.TopNode.Nodes.Add(_Dossier, Path.GetFileName(_Dossier)) listeDesFichiers(TreeView1.TopNode, _Dossier) Next For Each _Fichier As String In Directory.GetFiles(_RepertoireALister) Me.TreeView1.TopNode.Nodes.Add(Path.GetFileName(_Fichier)) Next End Sub Sub listeDesFichiers(ByVal _MonNode As TreeNode, ByVal _Nom As String) Dim Node As TreeNode = _MonNode.Nodes(_Nom) For Each Dossier As String In Directory.GetDirectories(_Nom) Node.Nodes.Add(Dossier, Path.GetFileName(Dossier)) listeDesFichiers(Node, Dossier) Next For Each fichier As String In Directory.GetFiles(_Nom) Node.Nodes.Add(Path.GetFileName(fichier)) Next
Bonsoir,
Certes un Openfiledialog est la solution mais je cherche a intégrer un treeview dans mon application
Si tu essaies mon code, tu observeras qu'il n'affiche que les noeuds principaux et certains fichiers
j'essaie de créer une récursivité pour afficher les sous dossier,sous sous dossier et fichiers dépendant a ces dossiers
Public Class Form1 Const _RepertoireALister As String = "." Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load TreeView1.TopNode = TreeView1.Nodes.Add(_RepertoireALister, _RepertoireALister) For Each _Dossier As String In Directory.GetDirectories(_RepertoireALister) TreeView1.TopNode.Nodes.Add(_Dossier, Path.GetFileName(_Dossier)) listeDesFichiers(TreeView1.TopNode, Path.GetFileName(_Dossier)) Next For Each _Fichier As String In Directory.GetFiles(_RepertoireALister) TreeView1.TopNode.Nodes.Add(_Fichier, Path.GetFileName(_Fichier)) Next
End Sub Sub listeDesFichiers(ByVal _MonNode As TreeNode, ByVal _Nom As String) Dim Node As TreeNode = _MonNode.Nodes(_Nom) For Each Dossier As String In Directory.GetDirectories(_Nom) _MonNode.Nodes.Add(Dossier)
Next For Each fichier As String In Directory.GetFiles(_Nom) _MonNode.Nodes.Add(Path.GetFileName(fichier))
Oups rectification marche pas trop bien dans sa récursivité
Essai plutôt ceci
' a mettre dans ta form
...
Init_TriView(Me.TreeView1, ".")
...
Public Sub listeDesFichiers(ByRef Node As TreeNode, ByVal _Nom As String)
Node.Text = _Nom
For Each Dossier As String In Directory.GetDirectories(_Nom)
Dim N As New TreeNode
listeDesFichiers(N, Dossier)
Node.Nodes.Add(N)
Next
For Each fichier As String In Directory.GetFiles(_Nom)
Node.Nodes.Add(" " & Path.GetFileName(fichier))
Next
End Sub
Public Sub Init_TriView(ByRef Tree As TreeView, byref Txt as String)
Dim N As New TreeNode
listeDesFichiers(N, Txt)
Tree.Nodes.Add(N)
End Sub