;=============================================================================== ; Function Name: _FilePathListToArray($sPath, $sFilter='*', $iFlag=0) ; Description: Analog zu _FileListToArray ==> aber es werden die kpl. Pfade ausgegeben ; Parameter(s): $sPath Pfad zum Ordner, von dem die Dateiliste erstellt werden soll ; $sFilter Dateiendung nach der gefiltert werden soll, Standard ist '*' ; $iFlag Rückgabe Dateien und/oder Ordner, ; 0 = Dateien u. Ordner (Standard) ; 1 = nur Dateien ; 2 = nur Ordner ; Return Value(s): Erfolg Array mit den Pfaden, $array[0] enthält die Anzahl der Dateien/Ordner ; Fehler 0 set @error 1 - Pfad existiert nicht ; 2 - Filter ungültig ; 3 - Flag ungültig ; 4 - keine Dateien/Ordner gefunden ; Author(s): BugFix (bugfix@autoit.de) ;=============================================================================== Func _FilePathListToArray($sPath, $sFilter='*', $iFlag=0) Local $oFSO, $oFolder, $sOut = '', $iLen If Not FileExists($sPath) Then Return SetError(1,0,0) If StringRegExp($sFilter, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2,0,0) If Not StringInStr('0 1 2', $iFlag) Then Return SetError(3,0,0) $oFSO = ObjCreate('Scripting.FileSystemObject') $oFolder = $oFSO.GetFolder($sPath) If StringInStr('0 2', $iFlag) Then For $SubFolder In $oFolder.Subfolders $sOut &= $sPath & '\' & $SubFolder.Name & @LF Next EndIf If $iFlag < 2 Then $iLen = StringLen($sFilter) For $File In $oFolder.Files If $sFilter <> '*' Then If StringRight($File.Name, $iLen) <> $sFilter Then ContinueLoop EndIf $sOut &= $sPath & '\' & $File.Name & @LF Next EndIf If $sOut = '' Then Return SetError(4,0,0) Return StringSplit(StringTrimRight($sOut, 1), @LF) EndFunc ;==>_FilePathListToArray