Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++ > C++Builder
C++Builder Environnement de développement RAD C++Builder. Avant de poster -> F.A.Q C++Builder, Sources C++Builder
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/11/2012, 12h40   #1
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
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 :
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
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2012, 14h14   #2
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 172
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 172
Points : 13 204
Points : 13 204
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 :
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2012, 19h12   #3
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
J'ai essayé
Code :
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
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 09h53   #4
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
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 :
DirectoryListing->Items[i]->ModifiedDate
Merci d'avance
__________________
Gilbert PASQUALINI
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 10h21   #5
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 172
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 172
Points : 13 204
Points : 13 204
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 12h07   #6
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
Non je n'ai plus ce message, mais j'arrête avant d'appeler
Code :
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
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 18h22   #7
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
J'avais pensé qu'il y avait la possibilité d'utiliser :
Code :
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
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 11h23   #8
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 172
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur C++\Delphi
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juillet 2006
Messages : 9 172
Points : 13 204
Points : 13 204
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 :
#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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2012, 09h57   #9
Pasqualini
Membre habitué
 
Inscription : août 2002
Messages : 268
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 268
Points : 141
Points : 141
Comme je l'ai écrit sur un autre forum, ShaiLe Troll a donné la bonne solution.
Il fallait ajouter :
Code :
#include <IdAllFTPListParsers.hpp>
Merci encore
__________________
Gilbert PASQUALINI
Pasqualini est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h59.


 
 
 
 
Partenaires

Hébergement Web