PBM: lister fichiers et dossiers d'un disque distant dans une listbox via winsoc

Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006 - 12 août 2005 à 09:33
Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 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

Voila, merci a tous par avance de vos reponses...

1 réponse

Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 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?

Merci
0
Rejoignez-nous