Moin,
wolltet ihr nicht schon immer alle Dateien und / oder Ordner eines Pfades ermitteln? Hiermit könnt ihr das xD
Wer will, kann auch ein Dateifilter einbauen, aber ich überprüfe das immer nachträglich, und so ist die Funktion richtig schön schnell =)
Spoiler anzeigen
Func ZeigeDateien($pfad, $typ = 0, $maxAnz = 50000) ; typ=0: Dateien, typ=1: Ordner, typ=2: Alles
If $typ < 2 Then
Local $ordner[$maxAnz + 1], $i = 1
If $typ = 0 Then Local $datei[$maxAnz + 1], $k = 1
$ordner[0] = $pfad
For $j = 0 To $maxAnz
$suchhandle = FileFindFirstFile($ordner[$j] & '\*.*')
$ordner[$j] &= '\'
Do
$objekt = FileFindNextFile($suchhandle)
If @error Then ExitLoop ; Keine Daten mehr vorhanden
If StringInStr(FileGetAttrib($ordner[$j] & $objekt), 'D', 2) Then ; Ordner
If Not StringInStr($ordner[$j] & $objekt, $pfad, 2) Then ExitLoop 2
$ordner[$i] = $ordner[$j] & $objekt
$i += 1
ElseIf $typ = 0 Then
$datei[$k] = $ordner[$j] & $objekt
$k += 1
EndIf
Until False
$ordner[$j] = StringTrimRight($ordner[$j], 1) ; entfernt '/' am Ende
FileClose($suchhandle)
Next
If $typ = 0 Then
ReDim $datei[$k]
$datei[0] = $k - 1
Return $datei
Else
ReDim $ordner[$j]
$ordner[0] = $j - 1
Return $ordner
EndIf
Else
Local $a = ZeigeDateien($pfad, 0)
Local $b = ZeigeDateien($pfad, 1)
Local $c[UBound($a) + UBound($b)]
For $i = 0 To UBound($a) - 1
$c[$i] = $a[$i]
Next
ReDim $b[UBound($b) + 1]
For $i = UBound($a) To UBound($c) - 1
$c[$i] = $b[$i - UBound($a) + 1]
Next
ReDim $c[UBound($c) - 1]
$c[0] = UBound($c) - 1
Return $c
EndIf
EndFunc