###User Defined Function###
_FileListToArrayRec

###Description###
Listet Dateien und/oder Ordner im angegebenen Pfadmit optionaler Rekursion um das Level festzulegen und einer Ergebnissortierung

###Syntax###
#include <File.au3>
_FileListToArrayRec ( $sFilePath [, $sMask = "*" [, $iReturn = $FLTAR_FILESFOLDERS [, $iRecur = $FLTAR_NORECUR [, $iSort = $FLTAR_NOSORT [, $iReturnPath = $FLTAR_RELPATH]]]]] )

###Parameters###
@@ParamTable@@
$sFilePath
	Anfangspfad der genutzt wird um die Dateiliste zu generieren
	Wenn der Pfad mit \ endet, dann werden Ordner mit einem abschließenden \ zurückgegeben
	Wenn die Pfadlänge &gt; 260 Zeichen, vor dem Pfad ein "\\?\" schreiben - zurückgegebene Pfade sind nicht beeinflusst
$sMask
	[optional] Filter für das Ergebnis- Mehrere Filter müssen mit einem ; getrennt werden
	Nutze "|" um 3 mögliche Gruppen von Filtern zu trennen: "Include|Exclude|Exclude_Folders"
		Include = Dateien/Ordner die einbezogen werden sollen (default = "*" [alle])
		Exclude = Dateien/Ordner die ausgeschlossen werden sollen (default = "" [none])
		Exclude_Folders = nur genutzt wenn $iRecur = 1 UND $iReturn &lt;&gt; 2 um angegebene Ordner auszuschließen (default = "" [none])
$iReturn
	[optional] Gibt an ob Datein, Ordner oder beides zurückgegeben werden soll und ob welche mit bestimmten Attributen ausgelassen werden sollen
		$FLTAR_FILESFOLDERS (0) - (Default) Gibt Dateien und Ordner zurück
		$FLTAR_FILES (1) - Gibt nur Dateien zurück
		$FLTAR_FOLDERS (2) - Gibt nur Ordner zurück
	Füge eines oder mehrere der Folgenden zu $iReturn hinzu um Dateien/Ordner mit diesen Attributen auszuschließen
		+ $FLTAR_NOHIDDEN (4) - Versteckte Dateien und Ordner
		+ $FLTAR_NOSYSTEM (8) - System Dateien und Ordner
		+ $FLTAR_NOLINK (16) - Link/Junction Ordner
$iRecur
	[optional] Gibt an ob rekursiv in Unterordner gesucht werden soll und bis zu welchem Level
		$FLTAR_NORECUR (0) - Nicht in Unterordnern suchen (Default)
		$FLTAR_RECUR (1) - Suche in allen Unterordnern (unbegrenzte Rekursion)
		Negative Zahl - Suche in Unterordnern bis zur angegebenen Tiefe
$iSort
	[optional] Sortiert das Ergebnis in Alphabetischer- und Tiefen-Reihenfolge
		$FLTAR_NOSORT (0) - Keine Sortierung (Default)
		$FLTAR_SORT (1) - Sortiert
		$FLTAR_FASTSORT (2) - Sortiert mit schnellerem Algorithmus (Nimmt an, dass Dateien in Ordnern sortiert zurückgegeben werden - benötigt NTFS und garantiert nichts)
$iReturnPath
	[optional] Gibt das aussehen der Ergebnispfade an
		$FLTAR_NOPATH (0) - nur Datei/Ordner name
		$FLTAR_RELPATH (1) - relativ zum Anfangspfad (Default)
		$FLTAR_FULLPATH (2) - der gesamte Pfad
@@End@@

###ReturnValue###
@@ReturnTable@@
Success:	 ein 1D-Array mit foglendem Aufbau:
		[0] = Anzahl zurückgegebener Dateien/Ordner
		[1] = 1te Datei/Ordner
		[2] = 2te Datei/Ordner
		...
		[n] = n-te Datei/Ordner
Failure:	ein leerer String und setzt das @error flag auf 1 mit @extended gesetzt wie folgt:
		1 - Pfad nicht gefunden oder fehlerhaft
		2 - Fehlerhafter Include Parameter
		3 - Fehlerhafter Exclude Parameter
		4 - Fehlerhafter Exclude_Folders Parameter
		5 - Fehlerhafter $iReturn Parameter
		6 - Fehlerhafter $iRecur Parameter
		7 - Fehlerhafter $iSort Parameter
		8 - Fehlerhafter $iReturnPath Parameter
		9 - Keine Dateien/Ordner gefunden
@@End@@

###Remarks###
Wenn die Dateien und/oder Ordner die zurückgegeben werden sollen alle in dem selben Ordner sind und mit einem einfachen Filter beschrieben werden können, könnte die <a href="_FileListToArray.htm">_FileListToArray()</a> Funktion eine bessere Wahl sein, da diese wesentlich schneller ist.

Include/Exclude/Exclude_Folders Logik:
	Nicht-Rekursiv:
		Include/Exclude: Dateien und/oder Ordner
		Exclude_Folders: Ignoriert
	Rekursiv:
		Include/Exclude:
			$iReturn = $FLTAR_FILESFOLDERS/$FLTAR_FILES - nur Dateien
			$iReturn = $FLTAR_FOLDERS - nur Ordner
		Exclude_Folders:
			$iReturn = $FLTAR_FILESFOLDERS/$FLTAR_FILES - nur Ordner
			$iReturn = $FLTAR_FOLDERS - Ignoriert

Das Ergebnis zu sortieren wird die benötigte Zeit der UDF, um das Array zurückzugeben, deutlich steigern.

Entgegen dem Namen, diese UDF ist Iterativ, nicht Rekursiv. Konstanten sind in der FileConstants.au3 definiert

###Related###
_FileListToArray

###Example###
@@IncludeExample@@

