Funktionreferenz


FileFindFirstFile

Beschreibung anzeigen in

Erzeugt ein Suchhandle, welches durch einen Pfad und eine Dateimaske definiert ist.

FileFindFirstFile ( "filename" )

Parameter

filename Suchkriterienstring. Die Wildcards * und ? werden unterstützt - siehe Bemerkungen.

Rückgabewert

Erfolg: Ein Such-"Handle", das für folgende Funktionen FileFindNextFile() benutzt werden kann.
Fehler: -1, wenn ein Fehler aufgetreten ist. Wenn der Ordner leer ist, wird @error auf 1 gesetzt.

Bemerkungen

Die Suche unterscheidet nicht zwischen Groß- und Kleinschreibung.
Wildcards: Im allgemeinen bezeichnet * null oder mehr Zeichen, ? null oder ein Zeichen. Falls das Suchkriterium nur Wildcards enthält (oder "*.*" ist), ist das untere Beispiel für den Rückgabewert hilfreich!

Es kann nur eine Wildcard im Teil des Dateinamens oder der Endung verwendet werden, z. B. a*.b?.
?? scheint die gleiche Funktion wie * zu haben (in der Dokumentation von Microsoft nicht beschrieben).
Wenn eine 3 Zeichen lange Endung verwendet wird, passt jede mit diesen 3 Zeichen beginnende Endung, z.B. passt "test.log_1" bei "*.log". (in der Dokumentation von Microsoft auch nicht beschrieben).

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

Verzeichnisnamen werden entsprechend den eventuell verwendeten Wildcards zurückgegeben.

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

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