Functions > FileDirDisk >


FileFindFirstFile

Crée un handle de recherche, défini par un chemin et un filtre de fichiers.

FileFindFirstFile ( "filename" )

Paramètre

filename Le chemin et le filtre de fichiers (les caractères génériques * et ? sont pris en charge - Voir Remarques).

Valeur de retour

Succès: Retourne le handle de recherche à utiliser avec la fonction FileFindNextFile.
Échec: Retourne -1 si rien n'est trouvé. La valeur du flag @error est 1 seulement si le dossier est vide.

Remarques

La chaîne de recherche n'est pas sensible à la casse.
Caractères spéciaux: En général, * représente zéro ou plusieurs caractères, et ? représente zéro ou un caractère. Si votre chaîne de recherche de fichier ne contient que de caractère générique (ou est "*.*"), alors consultez l'exemple ci-dessous pour la valeur de retour!

Vous pouvez utiliser un seul caractère spécial dans la partie nom de fichier ou dans la partie d'extension, par exemple : a*.b?.
Lorsque vous utilisez 3 caractères pour l'extension du nom, toute extension à partir de ces 3 caractères sera acceptée. Exemple "*.log" correspondra à "test.log_1" (non décrit dans la documentation de Microsoft).

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

Le nom du répertoire sera retourné en accord avec les caractères génériques s'il y en a.

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, FileFindNextFile

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