Код:

;~ Функция вывода структуры каталогов
Func ParceDir($Path)
Local $Pathes[2],$i,$Folders,$Str
$Pathes[0]=1
$Pathes[1]=$Path
While $i<$Pathes[0]
$i=$i+1
$Folders=FileFindFirstFile($Pathes[$i]&"\*")
If $Folders=-1 Then ContinueLoop
While 1
$Str=FileFindNextFile($Folders)
If @error Then ExitLoop
If $Str="." Or $Str=".." Then ContinueLoop
$Str=$Pathes[$i]&"\"&$Str
If StringInStr(FileGetAttrib($Str),"D")<>0 Then
$Pathes[0]=$Pathes[0]+1
ReDim $Pathes[$Pathes[0]+1]
$Pathes[$Pathes[0]]=$Str
EndIf
WEnd
FileClose($Folders)
Wend
Return $Pathes
EndFunc
Вызывается с полным путем к каталогу, возвращает одномерный массив, где [0] - количество каталогов, [x] - полный путь к каталогу
Есть минус - каталоги в массиве идут по вложенности (сначала верхний уровень, потом вложенные папки), да и быстродействие хромает...