Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Maza Faka:
Можно так: »
идея понятна, но ты очевидно поторопился , итак:

- у тебя очепятка ($path vs $sPath);
- имя каталога заносится в массив без пути;
- проверка локального массива через IsArray() необязательна (особенность For);
- проверка глобального массива IsArray() желательна (особенность _ArrayAdd())
- зачем $sRet ?
- наконец, повторюсь: чтобы избежать путаницы при повторном использовании функций с глобальными переменными их нужно объявлять в параметрах через ByRef.
Код: Выделить весь код
#include <File.au3>
#include <Array.au3>

Global $DirArray[1]
_ArrayDirListAdd($DirArray, "c:\windows")
_ArrayDisplay($DirArray,'')

Func _ArrayDirListAdd (ByRef $aGDir, $sPath = @ScriptDir)
    Local $aLDir = _FileListToArray($sPath, "*", 2)
    For $i = 1 To UBound($aLDir) - 1
        If IsArray($aGDir) Then _ArrayAdd($aGDir, $sPath &"\"& $aLDir[$i])
        _ArrayDirListAdd ($aGDir, $sPath &"\"& $aLDir[$i])
    Next
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:12, 17-10-2007 | #609