Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RESOLU][FTP] Connaître les information d'un fichier FTP  (Lu 3301 fois)

0 Membres et 2 Invités sur ce sujet

Feanor

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
[RESOLU][FTP] Connaître les information d'un fichier FTP
« le: Juillet 30, 2015, 04:51:15 pm »
Bonjour à tou(te)s,
Tout est déjà dans le titre mais afin de mieux vous faire comprendre mon besoin, je chercher a pouvoir accéder aux informations d'un fichier contenu sur un serveur FTP comme par exemple sa date de modification avant de le télécharger. Cela peut également être sa taille par exemple. j'ai pas mal cherché sur internet et dans les bibliothèques mais je n'ai rien trouvé correspondant a mes attentes.
Quelqu'un sait-il comment faire? (merci a l'avance)
« Modifié: Août 16, 2015, 06:58:17 pm par Feanor »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #1 le: Juillet 30, 2015, 04:56:32 pm »
Tu peux essayer les commandes LIST et SIZE par exemple.
Laurent Gomila - SFML developer

Feanor

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #2 le: Août 08, 2015, 10:08:07 pm »
Bonjour, merci mais j'ai beau chercher, je n'ai rien trouvé pouvant m'aider a ce sujet sur LIST et SIZE. c'est possible d'avoir un peu plus de détail s'il vous plait?   :-\

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #3 le: Août 08, 2015, 11:06:29 pm »
C'est une commande FTP, pas SFML.
Tu peux envoyer une commande FTP avec sendCommand.
Pour connaitre les paramètres associés à LIST et SIZE (ou à d'autres commandes FTP) j'imagine que c'est facilement trouvable sur ton moteur de recherche préféré. ;)

Feanor

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #4 le: Août 13, 2015, 01:33:33 pm »
ok merci. j'ai essayé de voir de ce coté. effectivement il ya des fonctions a part. toutefois, je n'arrive pas a les utiliser correctement. j'ai ramené un bout de code avec moi. est-il possible de me dire ou es l'erreur? j'essaye de recuperer le détail de chaque fichier mais je ne vois déjà pas comment créer le lien avec le listing:

       
//[...connexion FTP reussie]
       
    sf::Ftp::ListingResponse directory = ftp.getDirectoryListing();
    const std::vector<std::string>& listing = directory.getListing();
    sf::Ftp::Response detailfichier = ftp.sendCommand("LIST", "-r");
               
        for (std::vector<std::string>::const_iterator it = listing.begin(); it != listing.end(); it++)
        {
                if (detailfichier.isOk())       std::cout << "fichier:" << *it << " detail:" <<  detailfichier.getMessage() << std::endl;
        }
 
« Modifié: Août 13, 2015, 01:35:10 pm par Feanor »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #5 le: Août 13, 2015, 03:03:36 pm »
Bah si je prends la description de LIST sur wikipedia :
Citer
LIST      Returns information of a file or directory if specified, else information of the current working directory is returned. If the server supports the '-R' command (e.g. 'LIST -R') then a recursive directory listing will be returned.
T'es censé donner un nom de fichier à la commande LIST non ? Et t'as récupéré les noms de tous les fichiers avec getListing() non ?
Donc faut que tu fasses un "LIST nomDeFichier" (pour chaque nom de fichier, là tu fais "LIST -r" qui te redonnes la liste des fichiers.
En gros ftp.sendCommand("LIST", *it); dans ta boucle si j'ai bien compris.

Feanor

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #6 le: Août 13, 2015, 03:20:12 pm »
Ah mais ok je n'avais pas compris ça comme ca moi. Certes, j'ai tenté

for (std::vector<std::string>::const_iterator it = listing.begin(); it != listing.end(); it++)
                {
                        detailfichier = ftp.sendCommand("LIST", *it);
                        std::cout << "fichier:" << detailfichier << std::endl; 
                }
 

Cependant il semblerait que mon programme ne veuille pas continuer la boucle lorsqu'il se heurte sur mon sendcommand(). Comme s'il attendait quelque chose ou je ne sais pas quoi. Mais il me semble que ça faisait la même qu'avec le "-r"... est ce que cela signifie que je doivent utiliser un thread? mais ça m'ettonnerait car c'est bizarre que ca bloque comme ca...

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #7 le: Août 13, 2015, 03:24:21 pm »
Jamais essayé, je ne saurais pas t'en dire plus. ;)

Feanor

  • Newbie
  • *
  • Messages: 8
    • Voir le profil
    • E-mail
Re : [FTP] Connaître les information d'un fichier FTP
« Réponse #8 le: Août 16, 2015, 06:56:21 pm »
Alors... apres verification aupres de la commande FEAT (presentant les commandes supportés par le serveur), il ne m'indiquait pas la commande "LIST" j'en deduis donc que mon serveur Mutualisé ne prend pas cette commande. Toutefois, il m'affichait la commande "MDTM" qui affiche la date de modification d'un fichier. ainsi en faisant
ftp.sendCommand("MDTM", *it);
 
j'ai pu alors avoir les données de modification de mes fichiers :D