SyDr
Сидра
- Сообщения
- 651
- Репутация
- 158
Написал себе функцию для поиска всех файлов и папок в заданной папке.
Оказалось, что для пустых папок мой пример не работает.
Проверка показала, что это происходит из-за того, что значение @error после выполения функции FileFindNextFile равняется 0 Из-за этого я не могу определить, что искать в этой папке ничего не надо.
Помогите, может это я где ошибся. Назначение параметров функции:
1 - массив, в котором будут висеть результаты.
2 - чтобы знать, с каким элементов массива работать. В начале равно 0
3, 4 - папка для поиска. При вызове извне - должны совпадать, иначе результат я предсказать не могу.
P. S. Не смотрите на мою проверку, является ли найденное папкой. Я забыл, что в этом случае функция устанавливает @extended.
Оказалось, что для пустых папок мой пример не работает.
Проверка показала, что это происходит из-за того, что значение @error после выполения функции FileFindNextFile равняется 0 Из-за этого я не могу определить, что искать в этой папке ничего не надо.
Код:
Global $A[1]
#include
Global $I = 0
F($A, $I, "D:\Downloads\Text", "D:\Downloads\Text")
_ArrayDisplay($A)
Func F(ByRef $A, ByRef $I, $PD, $SD)
FileChangeDir($SD)
ReDim $A[2 * $I + 1]
Local $H = FileFindFirstFile("*.*")
While 1
$A[$I] = @WorkingDir & "\" & FileFindNextFile($H)
;~ SleeP(100)
If @error And FileClose($H) Then ExitLoop
;~ ConsoleWrite(@error & @CRLF)
$I += 1
If $I >= UBound($A) - 1 Then ReDim $A[2 * $I]
If FileExists($A[$I - 1] & "\") Then F($A, $I, @WorkingDir, $A[$I - 1])
WEnd
FileChangeDir($PD)
If $PD = $SD Then ReDim $A[$I + 1]
EndFunc
Помогите, может это я где ошибся. Назначение параметров функции:
1 - массив, в котором будут висеть результаты.
2 - чтобы знать, с каким элементов массива работать. В начале равно 0
3, 4 - папка для поиска. При вызове извне - должны совпадать, иначе результат я предсказать не могу.
P. S. Не смотрите на мою проверку, является ли найденное папкой. Я забыл, что в этом случае функция устанавливает @extended.