Функция _RecFileListToArray

         Описание функции


_RecFileListToArray

Возвращает список файлов или каталогов в указанном каталоге.

#Include <RecFileListToArray.au3>
_RecFileListToArray ( $sPath[, $sMask = "*"[, $iReturn = 0[, $iRecur = 0[, $iSort = 0[, $iReturnPath = 1[, $sExclude_List = ""[, $sExclude_List_Folder]]]]]]] )

Параметры

$sPath Путь поиска.
    Если путь оканчиваться символом "\", то возвращаемые папки будут оканчиваться символом "\"
    Если путь превышает длину 260 символов, префикс пути "\\?\", при этом возвращаемые пути не пострадают
$sMask [необязательный] Маска с использованием символов "*" и "?". В качестве разделителя используется символ ";". По умолчанию '*' - найти все файлы
    Используйте "|" для разделения 3-х возможных установок фильтра с полями "Include|Exclude|Exclude_Folders"
        Include = включает папки и файлы, по умолчанию "*", то есть все
        Exclude = исключает папки и файлы, по умолчанию "" пустая строка, то есть ничего не исключать
        Exclude_Folders = используется только если $iReturn = 0 и $iRecur = 1 (обязательно оба) для исключения определенных папок, по умолчанию "" пустая строка, то есть ничего не исключать
$iReturn [необязательный] Поиск файлов или папок или папки с файлами
    0 - (по умолчанию) файлы и папки
    1 - найти только файлы
    2 - (по умолчанию) найти только папки
    Добавление опций, чтобы пропустить элементы с указанными атрибутами. Использование этих опций увеличивает время поиска на 50%.
    +4 - Исключает скрытые файлы и папки
    +8 - Исключает системные файлы и папки
    +16 - Исключает ссылку/узел папки (символьные ссылки / точки соединения)
$iRecur [необязательный] Поиск в подпапках
    0 - (по умолчанию) Только в корневом каталоге
    1 - Поиск во всех подпапках (без ограничений)
    Отрицательное число - поиск во вложенных папках на заданную глубину
$iSort [необязательный] Сортировка
    0 - (по умолчанию) Не сортировать
    1 - Сортировать
    2 - Сортировать с быстрым алгоритмом (Предполагает сортировку файлов в пределах каждой папки - требуется NTFS диск)
$iReturnPath [необязательный] Вид возвращаемых путей
    0 - Только имя файла/папки
    1 - (по умолчанию) Относительный путь
    2 - Полный путь
$sExclude_List [необязательный] Маска исключения (по умолчанию ''). В качестве разделителя используется символ ";". Если файл разрешается маской $sInclude_List, но запрещён маской $sExclude_List, то файл не будет добавлен в результат.
$sExclude_List_Folder [необязательный] Используется только, если $iReturn = 0 и $iRecur = 1, чтобы исключить папки.

Возвращаемое значение

Успех:Возвращает одномерный массив, в котором $array[0]=количество файлов/папок
Ошибка:Возвращает пустую строку, устанавливает @error = 1, а @extended принимает следующие значения:
1 = Путь не найден или не верный
2 = неверный $sInclude_List
3 = неверный $iReturn
4 = неверный $iRecur
5 = неверный $iSort
6 = неверный $iReturnPath
7 = неверный $sExclude_List
8 = неверный $sExclude_List_Folder
9 = Не найдено файлов/папок

Примечания

Совместимость с существующим синтаксисом _FileListToArray

Последние два параметра ($sExclude_List и $sExclude_List_Folder) являются устаревшими, поскольку они должны быть включены в параметр $sMask. Если $sMask содержит поля Exclude и Exclude_Folders (т.е. используется символ "|"), то эти параметры будут игнорироваться

Пример

; Melba23
; http://www.autoitscript.com/forum/topic/126198-recfilelisttoarray-new-version-18-oct-11/
#include <Array.au3>
#include <RecFileListToArray.au3>

$timer = TimerInit()
;  только файлы
$aArray = _RecFileListToArray(@WindowsDir, "*.i??", 1, 1, 0, 2)
$timer = Round(TimerDiff($timer) / 1000, 2) & ' сек'
_ArrayDisplay($aArray, $timer)

$timer = TimerInit()
; только файлы в корне системного диска
$aArray = _RecFileListToArray(@HomeDrive, "*", 1, 0, 0, 2)
$timer = Round(TimerDiff($timer) / 1000, 2) & ' сек'
_ArrayDisplay($aArray, $timer)

$timer = TimerInit()
; только папки
$aArray = _RecFileListToArray(@SystemDir, "*", 2, 1, 0, 2)
$timer = Round(TimerDiff($timer) / 1000, 2) & ' сек'
_ArrayDisplay($aArray, $timer)