Functions > FileDirDisk >


FileFindNextFile

Obtient le nom de fichier suivant dans la liste définie par un handle de recherche.

FileFindNextFile ( search [, flag = 0])

Paramètres

search Le handle de recherche, retourné par FileFindFirstFile().
flag [optionnel] Détermine si la fonction doit retourner les attributs du fichier dans @extended.
    0 = (par défaut) utilise @extended pour retourner 1 ou 0 si l'élément trouvé est un répertoire.
    1 = Retourne une chaîne dans @extended dans le même format que FileGetAttrib().

Valeur de retour

Succès: Retourne un nom de fichier en accord avec un précédent appel à FileFindFirstFile(), et @extended est défini selon l'option flag
Échec: Retourne @error = 1 si plus aucun fichier/répertoire ne correspond à la recherche.

Remarques

Un précédent appel à FileFindFirstFile() est nécessaire pour configurer la recherche et obtenir un handle de recherche. Tous les appels à FileFindNextFile retourneront le fichier suivant trouvé selon la chaîne de recherche fournie à FileFindFirstFile(). Lorsque @error = 1, plus aucun fichier ne correspond au handle de recherche d'origine.

Lorsque vous avez terminé la recherche avec les fonctions FileFind..., vous devez utiliser FileClose() pour libérer le handle de recherche.

En raison de l'API Windows sous-jacente utilisé (FindFirstFile), cette fonction cherche actuellement à la fois les noms de fichier courts et longs. Si vous obtenez des résultats inattendus, vérifiez que ce ne sont pas des noms de fichiers courts qui réalisent la correspondance.

En relation

FileClose, FileFindFirstFile

Exemple

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Assigne une variable locale avec le handle de recherche de tous les fichiers dans le répertoire courant.
    Local $hSearch = FileFindFirstFile("*.*")

    ; Vérifie si la recherche a réussie, sinon affiche un message et retourne Faux.
    If $hSearch = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Erreur: aucun fichier/répertoire ne correspond au motif de la recherche .")
        Return False
    EndIf

    ; Déclare une variable locale qui contiendra les noms de fichiers trouvés.
    Local $iResult = $IDOK, $sFileName = FileFindNextFile($hSearch) ; premier fichier

    While @error = 0 And $iResult = $IDOK
        ; Affiche le nom du fichier.
        $iResult = MsgBox(BitOR($MB_SYSTEMMODAL, $MB_OKCANCEL), "", "Fichier: " & $sFileName)
        ; Si l'utilisateur clique sur le bouton Cancel/Close, la boucle s'arrête.

        $sFileName = FileFindNextFile($hSearch) ; fichier suivant
    WEnd

    ; Ferme Le handle de recherche.
    FileClose($hSearch)
EndFunc   ;==>Example