Treeview [Résolu]

Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
- - Dernière réponse : CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
- 4 oct. 2014 à 14:33
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

--
Afficher la suite 

6 réponses

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


--

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dartagnan43
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
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
Commenter la réponse de CGSI3
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
2
0
Merci
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

--
Commenter la réponse de dartagnan43
Messages postés
45
Date d'inscription
samedi 31 mai 2008
Statut
Membre
Dernière intervention
26 février 2015
2
0
Merci
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


--
Commenter la réponse de dartagnan43
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
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




--
Commenter la réponse de CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
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
--
Commenter la réponse de CGSI3