- Сообщения
- 3,557
- Репутация
- 628
AutoIt: 3.3.12.0
Категория:Вспомогательные функции
Описание: Поиск файлов и папок .
Начало в теме Создать список файлов - PureBasic
Решил выложить этот проект. Хотя это часть проекта, но все же , возможно, будет полезно. В архиве FFSearch.dll, пример вызова функции + описание, исходник dll на PureBasic
Код/Пример:
Файл: Исходник
Источник: autoit-script.ru
Автор(ы): joner + все, кто помог
Категория:Вспомогательные функции
Описание: Поиск файлов и папок .
Начало в теме Создать список файлов - PureBasic
Решил выложить этот проект. Хотя это часть проекта, но все же , возможно, будет полезно. В архиве FFSearch.dll, пример вызова функции + описание, исходник dll на PureBasic
Код/Пример:
Код:
#include <Array.au3>
$timer = TimerInit()
$res = _FFSearch("C:\Windows",2)
ConsoleWrite(TimerDiff($timer) & @CRLF)
_ArrayDisplay($res)
;----------------------------------------------------------------------------------------------------------------------------------------
;Функция _FFSearch($Path, $Flag = 0)
;описание Поиск файлов и папок
;параметры: $Path - путь к папке
; $Flag: 0 (по умолчанию) - поиск файлов и папок, 1 - поиск файлов, 2 - поиск папок
;успех: возвращает массив путей, для работы с массивом использовать функцию Ubound, @error = 0
;ошибка: возвращает пустой массив
; (-1) - путь не существует
; 1 - ошибка открытия dll
; 2 - ошбика регистрации функции DllCallbackRegister
; 3 - ошибка вызова функции. в макросе @extended номер ошибки. значение этой ошибки смотри в описании функции DllCall
; 4 - ничего не найдено
;-----------------------------------------------------------------------------------------------------------------------------------------
Func _FFSearch($Path, $Flag = 0)
If Not FileExists($Path) Then Return SetError(-1, 0, 0)
Global $aFFSearch[0], $aindex = 0, $error = 0
$hDLL = DllOpen("FFSearch.dll")
If $hDLL = -1 Then Return SetError(1, 0, 0)
$tProc = DllCallbackRegister('__SearchRes', 'none', 'str')
If $tProc = 0 Then Return SetError(2, 0, 0)
$ResDC = DllCall($hDLL, "none", "FFSearch", "ptr", DllCallbackGetPtr($tProc), "str", $Path, 'int', $Flag)
If @error Then Return SetError(3, @error, 0)
DllCallbackFree($tProc)
DllClose($hDLL)
If $error = 0 Then
Return $aFFSearch
ElseIf $error = 1 Then
Return SetError(4, 0, 0)
EndIf
EndFunc ;==>_FFSearch
Func __SearchRes($sPath)
If $sPath = 'non_result' Then
$error = 1
Return
EndIf
If Int($sPath) <> 0 Then
Global $aFFSearch[Int($sPath)]
Else
$aFFSearch[$aindex] = $sPath
$aindex += 1
EndIf
EndFunc ;==>__SearchRes
Файл: Исходник
Источник: autoit-script.ru
Автор(ы): joner + все, кто помог