DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions FTP
  • Lister les fichier d'un répertoire
FTPCommande (Exemple)
Lister les fichier d'un répertoire
WINDEVWEBDEV - Code ServeurEtats et RequêtesJavaCode Utilisateur (MCU)Ajax
Le code suivant permet de se connecter à un serveur FTP et de vérifier si un fichier existe dans la liste des fichiers d'un répertoire. Ce fichier est ensuite récupéré.
// Identifiant de connexion
nIDConnexion est un entier
// Paramètres de la connexion FTP
sAdresseServeurFTP, sNomCompteFTP, sPasseFTP sont des chaînes
// Paramètres pour FTPCommande
sNomCommandeFTP est une chaîne
sNomFichierSurServeurFTP est une chaîne
sCheminFichierSurServeurFTP est une chaîne
sRéponseServeurFTP, sDonnéesDuServeurFTP sont des chaînes
 
// Variables pour les tests
sUnNomDeFichier est une chaîne
IndiceFichier est un entier
bFichierTrouveSurServeur est un booléen
sAdresseServeurFTP = "192.5.58.47"
sNomCompteFTP = "MonCompteFTP"
sPasseFTP = "pass"
 
// Connexion FTP
nIDConnexion = FTPConnecte(sAdresseServeurFTP, sNomCompteFTP, sPasseFTP)
SI nIDConnexion <> -1 ALORS
// La connexion est Ok
// Nom du fichier à récupérer
sNomFichierSurServeurFTP = "Majprod.zip"
sCheminFichierSurServeurFTP = "RepMaj"   //(chemin avec des "/" et PAS des "\")
 
// Spécification du répertoire dans lequel il y a le fichier à récupérer
SI FTPRepEnCours(nIDConnexion, sCheminFichierSurServeurFTP) = Faux ALORS
Erreur(ChaîneConstruit("Impossible de se positionner sur" + ...
"le répertoire %1 sur le serveur FTP.", ...
sCheminFichierSurServeurFTP), ErreurInfo())
FIN
// Récupération de la liste des fichiers du répertoire courant par
// la fonction du WLangage "FTPCommande" et la commande FTP "LIST"
// Nom de la commande FTP
sNomCommandeFTP = "LIST"//peut s'obtenir aussi avec la commande FTPListeFichier
// Demande de la liste des fichiers du répertoire courant
SI FTPCommande(nIDConnexion, "LIST", ...
sRéponseServeurFTP, sDonnéesDuServeurFTP) = Faux ALORS
  // Echec de la commande FTP
Erreur(ChaîneConstruit("Echec de la commande %1. " + ...
"Réponse du serveur FTP : %2", sNomCommandeFTP, ...
    sRéponseServeurFTP), ErreurInfo())
SINON
// On vérifie que le nom du fichier spécifié existe bien sur le serveur FTP
    IndiceFichier = 1
    BOUCLE
// Un nom complet de fichier sur le serveur FTP
// (avec la date, l'heure et les attributs)
sUnNomDeFichier = ExtraitChaîne(sDonnéesDuServeurFTP, IndiceFichier, RC)
SI sUnNomDeFichier = EOT ALORS SORTIR
// Nom du fichier seul (sans la date, ni l'heure, ni les attributs)
sUnNomDeFichier = sUnNomDeFichier[[40 À]]
// C'est le fichier recherché ? (sans vérification de la casse)
SI sUnNomDeFichier ~= sNomFichierSurServeurFTP ALORS SORTIR
IndiceFichier++
    FIN
    // Fichier trouvé ?
    SI bFichierTrouveSurServeur = Faux ALORS
// Liste des fichiers du répertoire en cours sur le serveur
Erreur(ChaîneConstruit("Le fichier %1 n'a pas été trouvé" +...
" sur le serveur FTP. Voici la liste des fichiers du répertoire en cours" +...
" sur le serveur FTP :" + ...
    RC + "%2", sNomFichierSurServeurFTP, sDonnéesDuServeurFTP))
FIN
FIN
SI bFichierTrouveSurServeur = Vrai ALORS
// Le fichier existe bien sur le serveur FTP, on le récupère
// récupération du fichier par la fonction du WLangage "FTPCommande"
// et la commande FTP "RETR"
// Nom de la commande FTP
sNomCommandeFTP = "RETR"   // peut s'obtenir aussi avec la commande FTPRécupère
SI FTPCommande(nIDConnexion, sNomCommandeFTP + " " + ...
sNomFichierSurServeurFTP, sRéponseServeurFTP, ...
sDonnéesDuServeurFTP) = Faux ALORS
// Echec de la commande FTP
Erreur(ChaîneConstruit("Echec de la commande %1. Réponse du serveur FTP : %2", ...
sNomCommandeFTP,sRéponseServeurFTP), ErreurInfo())
SINON
// Données bien récupérées,
// les données du fichier "sNomFichierSurServeurFTP"
// sont dans "sDonnéesDuServeurFTP"
Info(ChaîneConstruit("La récupération du fichier %1 s'est bien déroulée," + ...
"cliquez sur OK pour l'enregistrer sur le disque local", ...
sNomFichierSurServeurFTP))
// Enregistrement des données du fichier en local
// (dans le répertoire en cours sans chemin)
SI fSauveTexte(sNomFichierSurServeurFTP, ...
sDonnéesDuServeurFTP) = Faux ALORS
Erreur("Impossible d'enregistrer les données récupérées", ErreurInfo())
FIN
FIN
FIN
// Déconnexion
FTPDéconnecte(nIDConnexion)
Info("Connexion FTP terminé")
SINON
Erreur("La connexion au serveur FTP a échoué", ErreurInfo())
FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale