IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Commande List avec un TIdFTP


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut Commande List avec un TIdFTP
    Bonjour,
    il est possible d'utiliser la commande Lis() d'un TIdFTP pour obtenir un certain nombre d'informations sur les dossiers et fichiers d'un dossier d'un serveur.
    Il faut par exemple écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdFTP1->List(liste, "", true);
    liste étant une TStringList.
    Lorsque j'essaie d'utiliser cette méthode pour obtenir
    • Le nom
    • la taille
    • la date de création
    • le type (fichier ou dossier)

    Je reçois le message
    "Aucun analyseur de liste FTP n'a été enregistré".
    Comment faut-il faire pour que cette commande fonctionne ?
    Merci si vous pouvez me dépanner.
    Gilbert PASQUALINI

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    TStringList liste est instanciée et vide prêt à recevoir des données ?
    aucun filtre dans ASpecifier, tu veux l'ensemble du répertoire courant ? as-tu les droits de parcours de ce dossier ?

    Tu utilises cette variante TIdFTP.List()

    Ton erreur correpond à RSFTPNoListParseUnitsRegistered lorsqu'il n'y a pas de TIdFTPListParseClass (voir CheckListParseCapa)
    qui correspond aux informations fourni par NLST c'est parce que tu as mis ADetails à true,
    Faudrait voir si il ne faudrait pas forcer le lancement de la section initialisation (via un pragma link de l'obj) qui enregistre les parser voir IdAllFTPListParsers.pas et IdFTPListParseBase.pas et les équivalents HPP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegisterFTPListParser(__classid(TIdFTPLPNList));
    Essaye aussi ADetails à false, tu auras au moins la liste des fichiers
    Après tu pourras tenter manuellement sur chaque fichier un FileDate
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdFTP1->List(liste, "", true);
    liste étant une TStringList.

    Voilà ce qu'il y a dans la StringList :
    xrwxrwx 1 1022 100 3627041 Oct 09 2009 Accident-Saint-Jean.pdf
    drwxrwxrwx 1 1026 100 4096 Nov 11 17:39 livres romans francais
    -rwxrwxrwx 1 1022 100 2235353 Dec 11 2008 BlowingRings.wmv
    -rwxrwxrwx 1 1022 100 1644466 Sep 14 2009 Braque-02.jpg
    drwxrwxrwx 1 1022 100 4096 Oct 13 12:43 Calendrier
    drwxrwxrwx 1 1026 100 4096 Aug 24 2011 Claude Allegre et les Guignols de l'info
    -rwxrwxrwx 1 1022 100 66767 May 27 2007 Climat-Temp象ture-soleil.pdf
    -rw-rw-rw- 1 1029 100 730012 Oct 6 13:08 Comment 鳲e modeste-02.jpg
    -rw-rw-rw- 1 1029 100 730012 Oct 1 11:58 Comment 鳲e modeste.jpg
    -rw-rw-rw- 1 1029 100 1812992 Oct 1 12:03 ConnexionPr.exe
    -rwxrwxrwx 1 1022 100 4738368 May 09 2007 DWL-G710_GIG_Fr.pdf
    drwxrwxrwx 1 1029 100 4096 Nov 20 2011 D衩t-Internet
    -rwxrwxrwx 1 1022 100 67869 Jun 20 2008 Edf-TF1-Economies d'譥rgie.pdf
    drwxrwxrwx 1 1029 100 4096 Oct 31 14:37 Encodings
    drwxrwxrwx 1 1029 100 4096 Nov 2 14:10 Horloge
    -rwxrwxrwx 1 1022 100 1511424 Nov 02 2007 Illusion opt GA.pps
    drwxrwxrwx 1 1029 100 4096 Nov 11 14:38 LecteurFTP
    drwxrwxrwx 1 1022 100 4096 May 22 2011 Montebello
    -rwxrwxrwx 1 1022 100 6464851 Apr 13 2009 OI n°215 - Avril 2009 - R貥au.pdf

    Cela devrait suffire pour obtenir tous les renseignements que je cherchais.

    Le type (fichier ou dossier), taille, date et nom.
    Gilbert PASQUALINI

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Je crois avoir été trop optimiste.
    Les dates sont incomplètes :
    Pour les fichiers, il n'y pas l'heure.
    Pour les dossiers, il y a l'heure mais pas l'année.

    La solution d'utiliser la recherche de la date avec FileDate fonctionne bien mais est très longue s'il y a un grand nombre de fichiers.

    Je suis toujours preneur d'une solution permettant d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectoryListing->Items[i]->ModifiedDate
    Merci d'avance
    Gilbert PASQUALINI

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    As-tu toujours le message "Aucun analyseur de liste FTP n'a été enregistré" ?
    Si oui, regarde le recensement des parsers
    Si non, euh ? je sais pas
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Non je n'ai plus ce message, mais j'arrête avant d'appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectoryListing->Items[i]->ModifiedDate
    Je me demande s'il ne faut pas mettre un container de TIdFTPListItems danbs l'appel de la méthode List().
    Gilbert PASQUALINI

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    J'avais pensé qu'il y avait la possibilité d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TIdDirItemType type =IdFTP1->DirectoryListing->Items[i]->ItemType;
    Mais cela m'a ramené le message d'erreur.

    J'ai vu sur Internet un problème du même ordre en Delphi.

    Il n'y a pas la solution…
    Gilbert PASQUALINI

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Faudrait voir si il ne faudrait pas forcer le lancement de la section initialisation (via un pragma link de l'obj) qui enregistre les parser voir IdAllFTPListParsers.pas et IdFTPListParseBase.pas et les équivalents HPP
    il fallait comprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <IdAllFTPListParsers.hpp>
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Comme je l'ai écrit sur un autre forum, ShaiLe Troll a donné la bonne solution.
    Il fallait ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <IdAllFTPListParsers.hpp>
    Merci encore
    Gilbert PASQUALINI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande List avec un TIdFTP
    Par Pasqualini dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2012, 15h26
  2. Lancer toad en command line avec liste d'action
    Par ffortin dans le forum Toad
    Réponses: 0
    Dernier message: 18/03/2009, 20h48
  3. [MySQL] Probleme avec la commande list()
    Par Linton.black dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/12/2007, 16h28
  4. [MFC] creer une liste avec des check????
    Par ginounet dans le forum MFC
    Réponses: 4
    Dernier message: 16/06/2004, 11h47
  5. Commande fopen avec Mingw32
    Par Blitzz dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 29/10/2003, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo