Programme qui se connecte à un serveur FTP pour rapatrier des fichiers

Programme qui se connecte à un serveur FTP pour rapatrier des fichiers - C - Programmation

Marsh Posté le 30-04-2004 à 10:32:10    

Salut,
 
 
Je dois faire un programme qui tourne en boucle sur un PC.
 
Ce programme :
- doit se connecter à plusieurs serveurs FTP (login/mdp) les uns après les autres
- doit lister un répertoire
- doit copier le contenu de ce répertoire du FTP vers un dossier du PC
- doit supprimer les fichiers du serveur FTP
 
Il existe des fonctions qui me permettraient de faire ça facilement ?
Je n'ai pas envie de tout reprendre au niveau des sockets...
Je ne vois pas trop comment m'y prendre... j'ai cru comprendre devoir réaliser un fichier "ftpcmd.ftp" par exemple, dans lequel je met toutes mes commandes, puis exécuter ce fichier avec la commande ftp...
 
Merci de m'éclairer
A+


---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 30-04-2004 à 10:32:10   

Reply

Marsh Posté le 30-04-2004 à 13:22:01    

Reply

Marsh Posté le 30-04-2004 à 14:08:46    

Pourquoi tu veux le faire en C ? Y'a d'autres langages qui te demanderont un temps de développement moins long.

Reply

Marsh Posté le 30-04-2004 à 15:25:22    

je ne connait bien que le C et cela s'inscrit dans un projet beaucoup plus gros, qui est réalisé en C
 
de quel(s) langage(s) parles-tu ?


---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 30-04-2004 à 15:27:26    

Ben le python par exemple te permet d'interagir avec un serveur ftp très facilement.

Reply

Marsh Posté le 30-04-2004 à 15:41:37    

franchement je ne suis pas très chaud pour m'y mettre...


---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 30-04-2004 à 15:46:32    

Exemple tiré de la doc python :

Code :
  1. >>> from ftplib import FTP
  2. >>> ftp = FTP('ftp.cwi.nl')   # connect to host, default port
  3. >>> ftp.login()               # user anonymous, passwd anonymous@
  4. >>> ftp.retrlines('LIST')     # list directory contents
  5. total 24418
  6. drwxrwsr-x   5 ftp-usr  pdmaint     1536 Mar 20 09:48 .
  7. dr-xr-srwt 105 ftp-usr  pdmaint     1536 Mar 21 14:32 ..
  8. -rw-r--r--   1 ftp-usr  pdmaint     5305 Mar 20 09:48 INDEX
  9. .
  10. .
  11. .
  12. >>> ftp.retrbinary('RETR README', open('README', 'wb').write)
  13. '226 Transfer complete.'
  14. >>> ftp.quit()


 
Bon si après ça tu veux te galérer à faire un truc en C qui plantera au premier truc que tu auras pas envisagé...

Reply

Marsh Posté le 30-04-2004 à 15:50:58    

tout le monde prêche pour sa chapelle...
 
perso je préfère être spécialisé dans un ou deux langages plutôt que de toucher un peu à tout et finalement n'être compétent dans rien  
 
si je dois changer de langage à chaque application différente je ne suis pas encore sorti de l'auberge
 
je suis certain qu'il existe des librairies en C, bien faites, qu'il suffit d'utiliser "tout bêtement" - perso ce que j'ai besoin de faire est très usuel donc pas becoin de sortir l'artillerie
 
A+


---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 30-04-2004 à 15:59:46    

C'est parce que le temps et l'efficacité de développement n'ets pas un facteur réellement important pour toi ou que tu n'as pas encore réalisé cette importance.
 
En effet changer de langage permet un réel gain et l'équipe de développement doit réfléchir aux choix technologiques qu'elle veut pour l'application à réaliser. On appelle ça le génie logiciel.
Sinon on n'utiliserait qu'un seul langage.
 
En tout cas bon développement !

Reply

Marsh Posté le 30-04-2004 à 16:32:54    

Eniac a écrit :

je ne connait bien que le C ...


[citation]j'ai cru comprendre devoir réaliser un fichier "ftpcmd.ftp" par exemple, dans lequel je met toutes mes commandes, puis exécuter ce fichier avec la commande ftp...[/citation]
 
ah? de là à penser que les 2 commentaires s'opposent... enfin.
si vraiment tu veux le faire en C, suit le lien que je t'ai donné plus haut.

Reply

Marsh Posté le 30-04-2004 à 16:32:54   

Reply

Marsh Posté le 04-05-2004 à 09:00:05    

Franchement, je patauge un peu avec toutes vos explications...
Et je suis un peu rétissant à utiliser des bibliothèques privées comme Curl...
 
Finalement, j'ai créé un programme en C :
- qui génère un fichier ftp.cmd avec les flots "classiques" d'entrée/sortie, ce fichier contient  
ftp (user)
ftp (mdp)
prompt  
lcd d:\MesDoc~1\TFE~1\Progra~1\SavedXML (choisir un nouveau dossier de travail sur le PC où le programme est exécuté, c'est là que vont atterir les fichiers téléchargés)
cd c:\XMLFILES (se déplacer dans le dossier distant qui contient les fichiers à rapatrier)
mget *.* (copie tous les fichiers du dossier en cours)
mdelete *.* (supprime tous les fichiers du dossier en cours)
quit

 
- qui exécute la commande :
ftp -s:cmd.ftp 192.123.456.789
 
 
Ca m'a pas pris très longtemps et ça tourne très bien.  Le seul truc chiant est que je n'ai pas de "retour", c-à-d que j'exécute ma commande mais je ne sais pas si tout s'est bien passé...  Y'a moyen de récupérer les réponses FTP ? Je ferais un fichier log.txt par exemple.
 
Merci A+


Message édité par Eniac le 04-05-2004 à 09:01:42

---------------
If you really want something, all the Universe conspires in helping you to achieve it.
Reply

Marsh Posté le 04-05-2004 à 12:05:00    

Eniac a écrit :

je suis un peu rétissant à utiliser des bibliothèques privées comme Curl...


 
privé ??? c'est au contraire TRES ouvert!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed