DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des fichiers externes
  • Gestion des erreurs
  • Lister les sous-répertoires d'un répertoire
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Liste les fichiers d'un répertoire et retourne la liste des fichiers listés. Les fichiers listés sont recherchés à partir du répertoire donné.
Autre utilisation : Pour chaque fichier trouvé, la fonction fListeFichier peut appeler automatiquement une procédure spécifique écrite en WLangage. Cette procédure permet de manipuler le fichier en cours. Dans ce cas, la fonction fListeFichier retourne le nombre de fichiers listés.
Remarque : Sous Windows 64 bits, l'accès à un répertoire système à partir d'un exécutable 32 bits peut être effectué dans un répertoire différent de celui attendu. Pour plus de détails, consultez la page d'aide 64 bits natif et 32 bits natif.
WINDEVEtats et RequêtesCode Utilisateur (MCU)PHPAjax
UnFichier, ResListeFichier sont des chaînes
// Liste les fichiers de type ".BMP" présents dans "C:\MesDocuments".
// Le parcours se fait également dans les sous-répertoires et est interruptible.
ResListeFichier = fListeFichier("C:\MesDocuments\*.BMP", frRécursif + frInterruptible)
// Pour chaque fichier trouvé
POUR TOUTE CHAÎNE UnFichier DE ResListeFichier SÉPARÉE PAR RC
// Ajout du fichier dans la table TABLE_TableFic
TableAjoute(TABLE_TableFic, UnFichier)
FIN
WINDEVWEBDEV - Code ServeurEtats et RequêtesJavaCode Utilisateur (MCU)PHPAjax
// Liste les fichiers de type ".BMP" présents dans "C:\MesDocuments".
// La procédure AttributFichier retourne le nombre de fichiers en lecture seule.
ResListeFichier = fListeFichier("C:\MesDocuments\*.BMP", "AttributFichier")
Syntaxe

Liste les fichiers d'un répertoire Masquer les détails

<Résultat> = fListeFichier(<Chemin et nom générique des fichiers> , <Options>)
<Résultat> : Chaîne de caractères
Nom complet des fichiers listés, séparés par des Retours Chariots (RC).

Attention : La fonction retourne les fichiers dont le nom court ou le nom long correspond au filtre.
<Chemin et nom générique des fichiers> : Chaîne de caractères
Chemin et nom générique des fichiers à lister. Les caractères génériques (* et ?) sont autorisés. Cas particuliers :
  • si le répertoire et le lecteur ne sont pas précisés : le chemin de recherche est constitué à partir du lecteur en cours et du répertoire en cours pour ce lecteur.
  • si le lecteur n'est pas précisé mais le répertoire est précisé : le chemin de recherche est constitué à partir du lecteur en cours et du répertoire passé en paramètre.
  • si le lecteur est précisé mais le répertoire n'est pas précisé, le chemin de recherche est constitué à partir du lecteur précisé et du répertoire en cours pour ce lecteur.
WindowsLinux Ce paramètre peut être au format Ansi ou Unicode.
AndroidWidget Android Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous Android, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires, ainsi que sur la mémoire externe (SDCard).
iPhone/iPad Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous les iPhone/iPad, une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires.
<Options> : Combinaison de constantes de type Entier
Option permettant de définir les informations renvoyées ainsi que le type de parcours effectué pour les fichiers du répertoire :
fCheminUNICODE<Résultat> sera une chaîne au format Unicode.
frInformationComplèteChaque ligne (séparée par des Retours Chariots (RC)) contient les informations suivantes :
<Nom du fichier complet> + TAB + <Taille en octets> + TAB +
<Date de dernière modification> + TAB + <Attributs du fichier>
La date est au format AAAAMMJJHHmmSS. Les attributs sont identiques à ceux renvoyés par la fonction fAttribut.
frInterruptibleLe parcours peut être interrompu en utilisant la touche ECHAP. Le résultat renvoyé sera alors le nom des fichiers listés jusqu'à l'interruption.
frNonRécursifLe parcours est non récursif. Les sous-répertoires ne sont pas pris en compte.
frRécursif
(Valeur par défaut)
Le parcours est récursif. Les sous-répertoires sont automatiquement pris en compte.
frSansFichierCachéSi la constante frInformationComplète est utilisée, les fichiers cachés ne sont pas listés (attribut = "H").
frSansRépertoireCachéSi la constante frInformationComplète est utilisée, les répertoires cachés ne sont pas listés (attribut = "H").

PHP Ce paramètre est ignoré.
WINDEVWEBDEV - Code ServeurEtats et RequêtesAndroidWidget AndroidiPhone/iPadJavaCode Utilisateur (MCU)PHPAjax

Liste les fichiers d'un répertoire en appelant une procédure pour chaque fichier Masquer les détails

<Résultat> = fListeFichier(<Chemin et nom générique des fichiers> , <Procédure WLangage> [, <Pointeur> [, <Options>]])
<Résultat> : Entier
Nombre de fichiers listés.
<Chemin et nom générique des fichiers> : Chaîne de caractères
Chemin et nom générique des fichiers à lister. Les caractères génériques (* et ?) sont autorisés. Cas particuliers :
  • si le répertoire et le lecteur ne sont pas précisés : le chemin de recherche est constitué à partir du lecteur en cours et du répertoire en cours pour ce lecteur.
  • si le lecteur n'est pas précisé mais le répertoire est précisé : le chemin de recherche est constitué à partir du lecteur en cours et du répertoire passé en paramètre.
  • si le lecteur est précisé mais le répertoire n'est pas précisé, le chemin de recherche est constitué à partir du lecteur précisé et du répertoire en cours pour ce lecteur.
AndroidWidget Android Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous Android, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires, ainsi que sur la mémoire externe (SDCard).
iPhone/iPad Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous les iPhone/iPad, une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée pour chaque fichier listé. Cette procédure permet de manipuler le fichier en cours. Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction fListeFichier.
PHP Le nom de la procédure doit correspondre à une chaîne de caractères entre guillemets.
<Pointeur> : Entier optionnel
Pointeur passé à la procédure <Procédure WLangage>.
PHP Paramètre passé à la fonction. Ce paramètre n'est pas obligatoirement un entier (il peut correspondre à une chaîne, ...).
<Options> : Constante ou combinaison de constantes optionnelles de type Entier
Type de parcours effectué pour les fichiers du répertoire :
fCheminUNICODE<Résultat> sera une chaîne au format Unicode.
frInterruptibleLe parcours peut être interrompu en utilisant la touche ECHAP.
WEBDEV - Code ServeurLinux Cette constante n'a aucun effet.
frNonRécursifLe parcours est non récursif. Les sous-répertoires ne sont pas pris en compte.
frRécursif
(Valeur par défaut)
Le parcours est récursif. Les sous-répertoires sont automatiquement pris en compte.
PHP Ce paramètre n'est pas pris en compte. Le parcours est non interruptible et non récursif.
Remarques

Gestion des erreurs

Attention : La fonction fListeFichier ne retourne pas de code d'erreur. Pour savoir si cette fonction a généré une erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
WINDEVWEBDEV - Code ServeurEtats et RequêtesAndroidWidget AndroidiPhone/iPadJavaCode Utilisateur (MCU)Ajax

Lister les sous-répertoires d'un répertoire

Pour lister les sous-répertoires d'un répertoire, utilisez la fonction fListeRépertoire.
Astuce : Il est également possible de lister les répertoires d'un répertoire avec la fonction fListeFichier.
Exemple :
fListeFichier("c:\temp\anim\.", proc)
// Ne pas oublier le '.' à la fin de la chaîne pour identifier les répertoires
PROCÉDURE proc(Rep, fichier, nChange, ptr)
Trace(Rep)
Liste des exemples associés :
La fonction fListeFichier Exemples unitaires (WINDEV) : La fonction fListeFichier
[ + ] Utilisation de la fonction fListeFichier et de sa syntaxe qui renvoie directement la liste des fichiers/répertoires trouvés sous la forme d'une chaine.
Composante : wd290std.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Tip Seconde Syntaxe
Si vous voulez utiliser la constante frNonRécursif avec la seconde syntaxte (ex : procédure de callback) il faut bien préciser le pointeur avant les options, par exemple :

fListeFichier(ChaîneConstruit("%1/*", sRepertoireSource), pTraiteFichier, Null, (INT_Recursif[1] = 1 ? frRécursif SINON frNonRécursif))

pTraiteFichier est la fonction de callback.
chris.n
03 jan. 2023
Option de tri
Bonjour,

L'ajout d'une option de tri (par date, nom, croissant , décroissant) serait un plus pour cette fonction.
Damien 10
15 oct. 2021
Problème syntaxe 2
En utilisant la seconde syntaxe, vous ne pourrez pas faire de parcours non récursif même avec la constante frNonRécursif !
Damien
12 sep. 2017
Problème de tri
Contrairement à ce qui est indiqué, la chaîne de résultat n'est pas triée par ordre alphabétique.
Jeremie GAQUIERE
02 mai 2017

Dernière modification : 25/05/2022

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