2010-08-26 1 views

Répondre

3

CIl n'a pas d'importance de la langue, Une fois que vous êtes connecté au serveur ftp, il suffit d'envoyer les commandes suivantes le protocole FTP ..

Vous devriez vérifier la File Transfer Protocol RFC C'est à dire si vous voulez faire un client FTP à partir de zéro. Vous pouvez utiliser des bibliothèques pour le faire.

Les commandes dont vous avez besoin peuvent être la commande LIST. Mais c'est merdique. Un nouveau RFC met à jour le premier et ajoute deux nouvelles commandes qui font exactement ce que vous voulez. Ces commandes sont MLST et MLSD et vous pouvez voir le RFC 3659 here. Vous devriez faire attention, je pense que tous les serveurs ftp n'acceptent pas ces commandes.

Un pense que vous pouvez faire, est d'utiliser un renifleur comme Wireshark pour renifler et obtenir des informations sur quelles commandes sont utilisées par les clients FTP. (BTW: les filtres Wireshark doivent être: ftp || ftp-data)

La commande FTP Linux utilise LIST pour sa commande dir.

+0

@Marco: je veux obtenir la date et l'heure de création de fichiers.folders etc ... J'ai créé un client FTP en C++ . J'utilise CFtpConnection pour me connecter au serveur FTP. –

+0

Dans la RFC, il est spécifié la commande LIST, mais une mise à jour a ajouté deux nouvelles commandes (MLST et MLSD). En envoyant ces commandes, vous devriez obtenir l'information que vous voulez. Ces commandes sont spécifiées dans RFC 3659 qui met à jour le premier rfc. Je vais modifier mon post pour l'ajouter. – Marco

+0

@Marco: Mais j'utilise CFTPsession, CFtpConnection, GetFtpConnection pour me connecter à FTP et ensuite utiliser CFtpFileFind pour trouver tous les fichiers et répertoires présents dans le serveur dans ce cas comment je peux utiliser ces commandes ci-dessus pour le faire ou si vous avez un autre FTP bibliothèque client C++? –

0

Il y a deux aspects à cela ... d'abord vous devez sélectionner des fonctions de socket C++ (ou C) à utiliser pour établir la connexion, alors vous devez implémenter le protocole d'envoi/réception attendu avec FTP pour demander et récupérer le répertoire et le contenu du fichier qui vous intéresse. (En pratique, bien que vous ne l'ayez pas mentionné, vous êtes probablement également intéressé par l'écriture des données récupérées quelque part dans votre propre système).

Il existe de nombreux choix concernant l'implémentation de socket ... vous pouvez utiliser l'API de socket BSD ou trouver une API C++ prédéfinie. La façon dont vous l'implémentez, ou la bibliothèque qui vous convient le mieux, dépend grandement de l'architecture de votre client: mono ou multi-thread, récupération d'un fichier à la fois ou téléchargement de centaines en parallèle. Pour le FTP, le document RFC spécifiant le protocole d'échange peut facilement être trouvé en cherchant sur le net, mais sera un travail considérable à implémenter à partir de zéro.

Vous pouvez également trouver une bibliothèque qui implémente déjà le protocole FTP et l'intégrer dans une application. Il n'est pas clair à partir de votre question exactement ce que vous considérez comme «créer un client», alors cela peut ou peut ne pas compter.

Bien sûr, il existe des dizaines de clients ftp simples que vous pouvez télécharger pour l'exemple de code, surtout si vous comptez les implémentations C qui seraient construites et qui peuvent être personnalisées en C++.

0

libcURL est très utile pour ce genre de chose:

http://curl.haxx.se/libcurl/

+0

Les gars je veux obtenir la date de création et l'heure de files.folders etc ... J'ai créé le client FTP en C++. J'utilise CFtpConnection pour me connecter au serveur FTP. –

Questions connexes