Liste des fichiers d'un répertoire distant

yerosnimus Messages postés 18 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 15 janvier 2007 - 6 déc. 2004 à 10:44
yerosnimus Messages postés 18 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 15 janvier 2007 - 7 déc. 2004 à 18:03
Bonjour,

J'ai réussi à faire un programme qui me connecte sur mon serveur FTP.
J'aimerai pouvoir affichier la liste des fichiers contenus dans le répertoire distant (sur le serveur FTP) dans une fenêtre de type "listbox", comme je le fais à partir de mon répertoire local. Mais je ne sais pas comment m'y prendre.

Pour le répertoire local, j'ai utilisé ceci :

SendMessage (hwndListBox1, LB_DIR, DDL_READWRITE, (LPARAM) TEXT ("*.*"));

Mais pour le distant, j'ai comme l'impression que ça ne suffira pas.

Quelque un pourrait-il m'indiquer des pistes de recherches ?

Cordialement,

Jerome

5 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
6 déc. 2004 à 11:16
Bonjour,

Il faut que tu demandes au serveur qu'il t'envoi la liste des fichiers. Pour cela il faut voir la RFC concernant le protocol FTP pour savoir quelle commande envoyer et connaitre comment il te retourne tout ca.

@+
Arnotic,
Admin CS, MVP Visual C++
0
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006
6 déc. 2004 à 14:44
tu devrais fair un tour ds msdn la lib wininet contient tout ce dont tu a besoin
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/ftp_sessions.asp

"Directory enumeration is performed by using the FtpFindFirstFile and InternetFindNextFile functions. FtpFindFirstFile uses the session handle created by InternetConnect to find the first file that matches the given search criteria and returns a handle to continue the directory enumeration. InternetFindNextFile uses the handle returned by FtpFindFirstFile to return the next file that matches the original search criteria. The application should continue to call InternetFindNextFile until there are no more files left in the directory."
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
6 déc. 2004 à 15:38
Effectivement je n'y avais plus pensé. Tu as les APIs de wininet qui te permette facilement de gérer le FTP aulieu de te retaper tout le protocol.

@+
Arnotic,
Admin CS, MVP Visual C++
0
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006
6 déc. 2004 à 15:51
oh que oui que c'est pratique
tu peux faire a peut pres tout ce quie est en rapport avec les protocole HTTP ou FTP et tres facilement

a plus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yerosnimus Messages postés 18 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 15 janvier 2007
7 déc. 2004 à 18:03
Merci à tous, je m'en suis sorti.

En revanche, je lance ma fonction qui m'affiche la liste de mes fichiers dans le répertoire distant. OK
Je fais ensuite un upload de quelques fichiers. Encore OK
Puis, je relance la fonction pour afficher la liste des fichiers (mise à jour) du répertoire distant et là pas entièrement OK

J'ai 2 cas de figure :
1er cas : Mon répertoire distant ne contien aucun fichier.
La fonction n'affiche rien hormis la chaîne de caractère "total 123". Pourquoi ?
Je fais l'upload, je relance la fonction pour afficher la liste et la fonction se contente d'afficher 3 caractères "étranges" à la suite de "total 123".

2ème cas : le répertoire distant contient déjà des fichiers.
Lors du premier passage, la liste s'affiche correctement.
Je fais l'upload.
Je relance la fonction et celle ci m'affiche à la suite de la liste des fichiers les trois caractères "étranges".

Je peux "arranger" un peu ce comportement en faisant un appel à la fonction ZeroMemory() sur ma structure WIN32_FIND_DATA. Cela m'évite d'avoir les 3 caractères que j'échange contre une ligne vide. C'est pas génial non plus.

QQn à t-il une idée sur ce qui se passe ?

Merci d'avance

Jerome
0
Rejoignez-nous