Treeview et fonction recursive pour explorateur FTP
cs_halbi
Messages postés17Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 janvier 2013
-
20 mai 2008 à 11:09
cs_halbi
Messages postés17Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 janvier 2013
-
20 mai 2008 à 12:06
Bonjour les gens,
J'expose mon problème :
Je cherche à reproduire un explorer ftp à l'aide d'un treeview, j'utilise une fonction recursive nommée "lister_noeud" que j'appel lorsqu'un noeud est detecté.
Cette fonction à l'air de fonctionner, le seul hic est que le prog ne m'affiche que les derniers enfants de chaque parents
Voila ce que j'aimerais :
Parent 1
---enfant 1.1
---enfant 1.2
Parent 2
---enfant 2.1
---enfant 2.2
etc ...
Mais pour l'instant je n'ait que cela :
Parent 1
--enfant 1.2
Parent 2
--enfant 2.2
etc...et cela pour chaque sous-rep, parfois j'ai même plusieurs fois le même enfant, sinon pas de problème pour les parents.
je ne m'en sors pas, HELP
A voir également:
Treeview et fonction recursive pour explorateur FTP
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 20 mai 2008 à 11:15
Salut,
Pourrais tu mettre ton code pour que l'on puisse voir?
slb.
---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
cs_halbi
Messages postés17Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 janvier 2013 20 mai 2008 à 11:37
Pas de problème, voila le code, developpé avec VS 2008 :
Il doit paraitre bordelique pour vous, mais je suis encors debutant, veuillez m'excuser
Function Lister_Noeud(ByVal NomRep As String, ByRef Noeud As Windows.Forms.TreeNode, ByVal Wi As Int32) As Boolean 'Voila la fonction recursive
Dim listbox As New Windows.Forms.ListBox
ftpcd(NomRep, axinet1) 'ces fonctions viennent d'une autre feuille et me servent
ftpdir(listbox, axinet1) 'a lister le contenu du ftp
Dim wrep As String
Dim wnoeud As New Windows.Forms.TreeNode
Wi = 0
For Wi = 0 To listbox.Items.Count - 1 'pour wi de 0 au nombre d'elements de la listbox wrep listbox.GetItemText(listbox.Items(Wi)) 'wrep elements de la listbox
wnoeud.ImageIndex = 0
wnoeud.SelectedImageIndex = 0 wnoeud.Text wrep 'texte du noeud contenu de wrep
If InStr(wrep, "/") > 0 Then 'si wrep comporte au moins un "/"
Lister_Noeud(wrep, wnoeud, Wi)
Else
ftpcd("..", axinet1) 'sinon, on remonte d'un niveau
End If
Noeud.Nodes.Add(wnoeud)
Next
End Function
Private Sub Menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As New Integer
Dim Nom_Rep As String
Dim lstb As New System.Windows.Forms.ListBox 'listbox virtuelle
If ftpopen("
192.168.1.1
", "user", "pass", axinet1) = True Then 'ouverture connection ftp
ftpdir(lstb, axinet1) 'dir dans la lstb
axinet1.Cancel()
i = 0
For i = 0 To lstb.Items.Count - 1
ftpopen("192.168.1.1", "user", "pass", axinet1) 'connection ftp
Nom_Rep = lstb.GetItemText(lstb.Items(i))
Dim noeud As New Windows.Forms.TreeNode
noeud.ImageIndex = 0
noeud.SelectedImageIndex = 0
noeud.Text = Nom_Rep
If InStr(Nom_Rep, "/") > 0 Then 'si dans nom_rep il y a un "/" alors
Lister_Noeud(Nom_Rep, noeud, i)
End If
TreeV_MAJ.Nodes.Add(noeud) 'ajout du noeud
axinet1.Cancel()
Next
Else
MsgBox("non connecté au ftp")
End If
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 mai 2008 à 11:46
ca risque d'être long...
liste les dossiers, leurs enfants, a la limite, mais pas recursif jusqu'au bout.
développe au fur et a mesure, quand l'user developpe telle ou telle branche.
cs_halbi
Messages postés17Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 janvier 2013 20 mai 2008 à 12:06
Merci pour votre réponse rapide,
Vous n'auriez pas un bout de code à me proposer parce que j'ai beau chercher sur le site je ne trouve rien, ou alors des explorateur style windows, ce qui ne m'interesse pas.
Je bloque vraiment la, je dois manquer de connaissances