Treeview [Résolu]

Signaler
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
-
CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
-
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
merci

--

6 réponses

Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
2
J'ai réussi youpi

Imports System.IO

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

End Sub
End Class


--
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Bonjour dartagnan43

Peut tu préciser le point qui te pose problème, le retour d'erreur et/ou, donc, ta question précise sur ce sujet.

Une solution plus simple serait peut être de passer pas un OpenFileDialog
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.openfiledialog(v=vs.110).aspx

Bonne Prog
CGSI3
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
2
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

--
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
2
J' suis presque mais pas tout a fait ça
Imports System.IO

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

Next
End Sub
End Class


--
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Bsoir Dartagnan,

Désolé j'étais absent quelques jours et pour être franc les Nodes et autres treeview ne sont pas mes amis ...

Mais j'essaierai cela des que possible car cela m'intéresse.

Perso j'ai moi même créé une classe pour travailler sur les fichiers.
donc si tu as besoin d'aide sur ce point je peux peut être t'aider.

Bonne continuation dans tes projets.

Merci pour le partage
CGSI3

Ps: Apres essai le code marche bien GG




--
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Bonjour,

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


ou mieux :

http://www.codeproject.com/Articles/301943/TreeView-Explorer-using-VB-NET
--