Erzeugt ein Suchhandle, welches durch einen Pfad und eine Dateimaske definiert ist.
FileFindFirstFile ( "filename" )
filename | Suchkriterienstring. Die Wildcards * und ? werden unterstützt - siehe Bemerkungen. |
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. |
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.
#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