PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → FTPListeFichier erreur anormale (selon moi)
FTPListeFichier erreur anormale (selon moi)
Débuté par TheCout, 11 aoû. 2022 12:25 - 8 réponses
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 11 août 2022 - 12:25
Lorsque j'utilise
soit nbFic = FTPListeFichier(v_int_CnxFtp, "/loc/*.*", procTraiteFichier, ftpFichier)


Si le sous-dossier est vide sur FTP, nbFic est bien évidemment = 0 mais j'ai une erreur de ce type:

Que s'est-il passé ?
Le fichier ou le répertoire *.csv n'existe pas ou est inaccessible.
La dernière réponse du serveur est : 200 Type set to A
229 Entering Extended Passive Mode (|||62893|)
150 Opening data channel for directory listing of "/locpneus"
226 Successfully transferred "/locpneus"


Code erreur : 100005
Niveau : erreur non fatale

Code d'erreur système : 18
Message d'erreur système :
Il n’y a plus de fichier.


Par contre si des fichiers existent, pas de problème.

Qu'est-ce-qui permet de distinguer cette "fausse" erreur d'une "vraie" (répertoire inexistant, erreur de connexion, etc...) et donc de traiter cela différemment ?

PS : le serveur est FileZilla Server sur Windows.
Membre enregistré
3 891 messages
Popularité : +227 (347 votes)
Posté le 11 août 2022 - 13:35
Bonjour,
Si le résultat de FTPListeFichier est 0, cela signifie qu'il n'y a pas de fichier ou qu'il y a une erreur. Il faut donc l'intercepter avant qu'elle ne s'affiche cf doc dans ton cas cela n'est pas fait

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 11 août 2022 - 14:08
Voroltinquo a écrit :
Bonjour,
Si le résultat de FTPListeFichier est 0, cela signifie qu'il n'y a pas de fichier ou qu'il y a une erreur. Il faut donc l'intercepter avant qu'elle ne s'affiche cf doc dans ton cas cela n'est pas fait


Le souci c'est que quand il n'y a pas de fichiers, une erreur est également déclenchée par Windev !! Ce qui ne devrait pas être le cas. :(


Mais bon, je pense que c'est dû au serveur, on va dire çà comme çà.

Du coup, c'est un peu goret mais je vais tester le ErreurInfo(errComplet) pour voir si il contient la chaîne "Code d'erreur système : 18"
Membre enregistré
3 891 messages
Popularité : +227 (347 votes)
Posté le 11 août 2022 - 14:45
Pourquoi ne pas directement traiter ça dans ton CAS ERREUR ou dans un QUAND EXCEPTION DANS.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
93 messages
Popularité : +1 (1 vote)
Posté le 11 août 2022 - 14:59
Voroltinquo a écrit :
>> Pourquoi ne pas directement traiter ça dans ton CAS ERREUR ou dans un QUAND EXCEPTION DANS.

Euuhh... Au risque de me répéter : en fait une erreur est déclenchée alors qu'elle ne devrait pas l'être : si il n'y a pas de fichier dans le dossier, une erreur est déclenchée. Alors que ce ne devrait pas l'être à mon sens. Doc PC SOft

 : Entier
Nombre de fichiers listés,
0 (en cas d'erreur). -->Pour savoir si cette fonction a généré une erreur, utilisez la fonction ErreurInfo avec la constante errMessage.<--


D'après ma compréhension, pour distinguer une "vrai" erreur (timeout ou je ne sais quoi) ou bien 0 fichiers trouvés, il faut utiliser la fonction ErreurInfo. D'après ce que j'ai compris à la doc, si ErreurInfo est vide, cela signifierait qu'il y a 0 fichiers sur le ftp.

Mais je peux peut-être me tromper dans mon analyse.
Message modifié, 11 août 2022 - 14:59
Membre enregistré
1 939 messages
Popularité : +53 (65 votes)
Posté le 11 août 2022 - 16:06
Bonjour,

Peut-être mon commentaire n'est-il pas "relevant" (je ne trouve plus le mot en français ;().

Ton code :
nbFic = FTPListeFichier(v_int_CnxFtp, "/loc/*.*", procTraiteFichier, ftpFichier)


La réponse du serveur :
1. Le fichier ou le répertoire *.csv n'existe pas ou est inaccessible.
donc ton code semblerait être :
nbFic = FTPListeFichier(v_int_CnxFtp, "/loc/*.csv", procTraiteFichier, ftpFichier)


2. 150 Opening data channel for directory listing of "/locpneus"
donc ton code devrait être :
nbFic = FTPListeFichier(v_int_CnxFtp, "/locpneus/*.csv", procTraiteFichier, ftpFichier)


J'en déduirais qu'il y a bien un problème car WinDev génère une exception si le chemin est incorrect (répertoire "loc" inexistant).

--
Bon dev,
Jean-Pierre
Posté le 14 avril 2023 - 16:25
Bonjour TheCout,

As-tu trouvé une solution à ton problème ?
Je rencontre le même souci sur W27 (104h)
Membre enregistré
6 messages
Posté le 14 avril 2023 - 16:27
Bonjour TheCout,

As-tu trouvé une solution à ton problème ?
Je suis sur W27 (104h) et je rencontre le même souci. 😔
Posté le 29 mars 2024 - 14:29
Bonjour à tous,

Avez-vous trouvé une solution à ce sujet, moi aussi, je suis dans la même galère ? j'ai un ftp pour lequel les droits sont régulièrement modifié et je n'ai donc pas le flistefichier qui renvoie 0 mais parce qu'il n'arrive pas à récupérer les fichiers.