Dir (Lua)

Материал из UoPilot
Перейти к навигации Перейти к поиску

Описание

dir - команда вывода дерева каталогов. Возвращает дерево в указанный массив, с разбивкой по столбцам. Имя файла можно не указывать. При указании в качестве параметров только имени массива, возвращает текущий каталог.
Поддерживается поиск файлов по маске.

Синтаксис

Привязка к окну: Нет.
Работа со свернутым окном: Да.

resultarray, count = dir ([Path, [Filemask]] [, norecursion])

Где:
resultarray - массив, в который будет записан результат.
count - количество найденных элементов.

Возвращает по столбцам:
  1) Полный корректный адрес с "\", именем файла, расширением.
  2) Адрес. Полный адрес слепленный в нормальную строку с "\".
  3) Имя файла без расширения.
  4) Расширение файла.
  5) Размер.
  6) Атрибуты.
  7) Дата.
  8) Время.
  9) Уровень вложенности для пункта 10.
  10) Путь с разбивкой 1 папка 1 столбец (для вложенных папок и файлов)

Path - необязательный параметр. Путь к директории.
Filemask - необязательный параметр. Расширение для поиска по маске. Регистронезависимо:

*.ini;*.wav            - соответствует любым файлам с расширениями 'ini' или 'wav'
*.*|*.exe              - соответствует любым файлам, кроме файлов с расширением 'EXE'
*.mp3;*.wav|?.*;??.*   - соответствует любым файлам с расширениями 'mp3' и 'wav', за исключением файлов у которых имя состоит из одного или двух символов.

Примеры

--lua
log "clear" log "mode compact"
local path = [[C:\Windows\media]]      -- путь к папке
local resultarray, count = dir (path)  -- получить список всех файлов, включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then      -- если файлы найдены
    for i=1, #resultarray do
        log (resultarray[i][1])         -- показать в логе список
    end
end
--lua
log "clear" log "mode compact"
local path = [[C:\Windows\media]]      -- путь к папке
local resultarray, count = dir (path, "*.wav", "norecursion")  -- получить список всех файлов в формате 'wav', не включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then      -- если файлы найдены
    for i=1, #resultarray do
        log (resultarray[i][1])         -- показать в логе список
    end
end
--lua
log "clear" log "mode compact"
local path = [[C:\Windows\media]]      -- путь к папке
local resultarray, count = dir (path, "*.wav")  -- получить список всех файлов в формате 'wav', включая файлы в подпапках
log ("Найдено файлов: " .. count)
if count then      -- если файлы найдены
    for i=1, #resultarray do
        log (resultarray[i][1])         -- показать в логе список
    end
end

Смотрите также

Dircreate (Lua)
Dirremove (Lua)
Filecopy (Lua)
Filedelete (Lua)
Filerename (Lua)