_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Пример
; 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)