PBM: lister fichiers et dossiers d'un disque distant dans une listbox via winsoc
Asaiel
Messages postés37Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention21 septembre 2006
-
12 août 2005 à 09:33
Asaiel
Messages postés37Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention21 septembre 2006
-
12 août 2005 à 15:09
Bonjour,
Je rencontre actuellement le pbm suivant et serait heureux d'avoir la reponse :D
J'ai créé un client et un serveur communiquant via winsock. Une option du client permet de lister les disques sur une machine distantes, puis une fois l'un de ces disques selectionné dans une combobox, la listbox située en dessous affiche l'ensemble des fichiers et des dossiers situés a la racine de ce disque, en précédant le nom de <File> si il s agit d un fichier et <dir> si il s agit d'un dossier.
Par la suite, un clic sur un element précédé de <dir> affiche tous les fichiers et dossiers presents ds ce nouveau repertoire.
Tout fonctionne apparemment correctement, excepté que lorsque je teste cette fonction sur mon ordinateur en naviguant jusqu au dossier c:/WINDOWS (particulierement riche lol), j'obtiens un certain nbre de reponse, puis plus rien... En fait ca me liste tous les dossiers, puis les fichiers jsqu'a la lettre N, puis plus rien...
Je me demande si le nombre de ligne de la listbox n'est pas limité....
En attendant voila le bout de code:
Dim mylist As String
Dim mytyp As String
If Mid(data, 4, 1) <> "2" Then
For i = 1 To UBound(Split(Right(data, Len(data) - 3), "$$$"))
mylist = Split(Right(data, Len(data) - 3), "$$$")(i)
If mylist <> "" Then
mytyp = Split(mylist, ">")(0) & ">"
Form20.lstmydir.AddItem mytyp & Split(mylist, "")(UBound(Split(mylist, "")))
End If
Next
Else
b = MsgBox("Erreur.", vbInformation + vbOKOnly, "Fichiers")
End If
Coté serveur:
Dim fso As Object
Dim myfolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set myfolder = fso.getfolder(Right(Data, Len(Data) - 3))
mywinsck.SendData "26$$$"
For Each X In myfolder.subfolders
mywinsck.SendData "<DIR>" & X.Path & "$$$"
Next
For Each X In myfolder.Files
mywinsck.SendData "<FILE>" & X.Path & "$$$"
Next
Asaiel
Messages postés37Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention21 septembre 2006 12 août 2005 à 15:09
J'ai un indice, apparemment ca viendrait du fait que winsock ne peut pas envoyer plus de 4096 octets par envoi, ce qui expliquerais la coupure, quelqu'un pourrait il m'indiquer une procedure pour contourner ce pbm?