Funktionreferenz


FileFindNextFile

Beschreibung anzeigen in

Gibt den nächsten Dateinamen aus, welcher durch das Suchhandle definiert wurde.

FileFindNextFile ( search [, flag = 0])

Parameter

search Das Suchhandle, wie es von FileFindFirstFile() zurückgegeben wurde.
flag [optional] dieses Flag bestimmt, ob in extended detaillierte Dateiinformationen zurückgegeben werden sollen.
    0 = (Standard) verwendet @extended um 1 oder 0 zurückzugeben, wenn das Suchergebnis ein Verzeichnis ist.
    1 = Gibt einen String in @extended im gleichen Format wie FileGetAttrib() zurück.

Rückgabewert

Erfolg: Ein Dateinamen entsprechend eines früheren Aufrufes von FileFindFirstFile(). @extended wird mit der Flag Option gesetzt.
Fehler: Setzt @error auf 1, wenn keine weiteren Dateien/Verzeichnisse den Suchkriterien entsprechen.

Bemerkungen

Ein vorheriger Aufruf von FileFindFirstFile() ist nötig, um das Suchhandle zu bekommen. Jeder folgende Aufruf von FileFindNextFile() gibt die jeweils nächste Datei zurück, die den Suchhandle aus FileFindFirstFile() entspricht. Wenn @error = 1 ist, passen keine weiteren Dateien auf die Suche.

Wenn die Suche mit den FileFind...-Funktionen beendet wurden, muss FileClose() aufgerufen werden, um das Suchhandle wieder freizugeben.

Aufgrund der zugrunde liegenden Windows-API (FindFirstFile) sucht diese Funktion die langen und kurzen Dateinamen. Wenn man unerwartete Ergebnisse erhält, dann ist zu prüfen, ob es nicht der kurze Dateiname ist, der gefunden wurde.

Verwandte Funktionen

FileClose, FileFindFirstFile

Beispiel

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Weist einer lokalen Variable ein Suchhandle für alle Dateien im aktuellen Verzeichnis zu.
    Local $hSearch = FileFindFirstFile("*.*")

    ; Prüft, ob die Suche erfolgreich war. Falls nicht wird eine Nachricht dargestellt und False zurückgegeben.
    If $hSearch = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Fehler: Es passt keine Dateien bzw. Ordner zu dem Suchmuster.")
        Return False
    EndIf

    ; Weist einer lokalen Variable einen leeren String zu, die die Namen der gefundenen Dateien aufnimmt.
    Local $sFileName = "", $iResult = 0

    While 1
        $sFileName = FileFindNextFile($hSearch)
        ; Falls es keine passenden Dateien mehr gibt.
        If @error Then ExitLoop

        ; Zeigt den Dateinamen.
        $iResult = MsgBox(($MB_OKCANCEL + $MB_SYSTEMMODAL), "", "Datei: " & $sFileName)
        If $iResult <> $IDOK Then ExitLoop ; Falls der Benutzer den Abbrechen oder Schließen Button anklickt.
    WEnd

    ; Schließt das Suchhandle.
    FileClose($hSearch)
EndFunc   ;==>Example