Listet Dateien und/oder Ordner eines bestimmten Ordners mit Platzhalteroptionen auf (Dateiplatzhalter und ähnlich zu "dir" mit der Option "/B" unter DOS)
#include <File.au3>
_FileListToArray ( $sFilePath [, $sFilter = "*" [, $iFlag = $FLTA_FILESFOLDERS [, $bReturnPath = False]]] )
$sFilePath | Ordner von dem eine Dateiliste erstellt werden soll. |
$sFilter | [optional] zu verwendender Filter, Standard ist *. (* und ? Wildcards werden akzeptiert. Siehe Bemerkungen) |
$iFlag | [optional] Bestimmt, ob nur Dateien, nur Ordner oder Dateien und Ordner zurückgegeben werden sollen. $FLTA_FILESFOLDERS (0) = (Standard) Gibt Dateien und Ordner zurück $FLTA_FILES (1) = Gibt nur Dateien zurück $FLTA_FOLDERS (2) = Gibt nur Ordner zurück Die Konstanten sind in FileConstants.au3 definiert |
$bReturnPath | [optional] Falls True, so wird der komplette Pfad an den Pfad der Datei bzw. des Ordners angehängt. Bei False ist dieser relativ zu dem $sFilePath Ordner. Standard ist False. |
Erfolg: | Ein 1D Array. $aArray[0] = Anzahl von zurückgegebenen Dateien/Ordnern $aArray[1] = erste(r) Datei/Ordner $aArray[2] = zweite(r) Datei/Ordner $aArray[3] = dritte(r) Datei/Ordner $aArray[n] = n-te Datei/Ordner |
Fehler: | Setzt das @error Flag auf ungleich null. |
@Error: | 1 - Pfad nicht gefunden oder ungültig 2 - $sFilter ungültig 3 - $iFlag ungültig 4 - Keine Datei(en) gefunden |
Diese Funktion verwendet das Windows Betriebssystem um passende Unterordner mit dem festgelegten Filter zurückzugeben.
Dies funktioniert perfekt für einfache Filter.
Werden komplexe Filter mit mehreren Wildcards verwendet, so kann es zu unerwarteten Ergebnisse kommen.
*test*.* wird zum Beispiel beide Unterordner testX und testX.X erkennen.
Falls dies passiert ist die _FileListToArrayRec() Funktion passender, da diese RegEx verwendet und alle Unterordner so auf den passenden Filter untersucht.
Allerdings kann dies zu einer deutlichen Geschwindigkeitsreduzierung führen.
Siehe FileFindFirstFile() für eine Diskussion über Wildcards.
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Listet alle Dateien und Ordner des Desktops durch Verwendung der Standardparameter auf
Local $aFileList = _FileListToArray(@DesktopDir, "*")
If @error = 1 Then
MsgBox($MB_SYSTEMMODAL, "", "Pfad ungültig.")
Exit
EndIf
If @error = 4 Then
MsgBox($MB_SYSTEMMODAL, "", "Keine Dateien gefunden.")
Exit
EndIf
; Zeigt das Ergebnis, zurückgegeben durch _FileListToArray.
_ArrayDisplay($aFileList, "$aFileList")
EndFunc ;==>Example
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
; Listet alle Dateien und Ordner im Desktop-Ordner auf. Dabei wird als Parameter Default verwendet und der komplette Pfad zurückgegeben.
Local $aFileList = _FileListToArray(@DesktopDir, Default, Default, True)
If @error = 1 Then
MsgBox($MB_SYSTEMMODAL, "", "Pfad ist ungültig.")
Exit
EndIf
If @error = 4 Then
MsgBox($MB_SYSTEMMODAL, "", "Keine Dateien gefunden.")
Exit
EndIf
; Zeigt das Ergebnis welches durch _FileListToArray zurückgegeben wurde.
_ArrayDisplay($aFileList, "$aFileList")
EndFunc ;==>Example