Сканирование папки при помощи Lua.

Страницы: 1
RSS
Сканирование папки при помощи Lua.
 
Привет Всем!
Подскажите пожалуйста как с помощью lua просканировать папку в windows  "например: C:\Users\User\Documents"  
и получить на выходе список всех имен от файлов которые там находятся.
 
Цитата
Archie_ написал:
Привет Всем!
Подскажите пожалуйста как с помощью lua просканировать папку в windows  "например: C:\Users\User\Documents"  
и получить на выходе список всех имен от файлов которые там находятся.
google: lua file system
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Цитата
Archie_ написал:
Подскажите пожалуйста как с помощью lua просканировать папку в windows  "например: C:\Users\User\Documents"
Самый простой способ:
Код
local p = "%USERPROFILE%\\Documents"
local t = {}
for line in io.popen("dir \""..p.."\" /a /b", "r"):lines() do
    t[#t+1] = line
end
В таблице t будут имена всех подпапок и файлов в папке p. Меняя ключи команды dir, можно получить любой другой набор папок и/или файлов с определёнными атрибутами и способом сортировки. Ну это уже и так понятно, я полагаю...
 
Suntor,Спасибо большое !!!
Еще вопросик такой ,эта  сканирует одну указанную папку и отдает имена,а как сделать "не могу сообразить " что бы  подпапки тоже сканировались
 
Цитата
Archie_ написал:
Suntor  ,Спасибо большое !!!
Еще вопросик такой ,эта  сканирует одну указанную папку и отдает имена,а как сделать "не могу сообразить " что бы  подпапки тоже сканировались
Если нужно чтобы всё в итоге линейно в одну таблицу путями попало, то просто добавить ключ /s к команде dir.

А если нужно чтобы создалась структура папок, их подпапок и файлов с именами вложенными таблица в таблицу повторяющими вложение подпапок и файлов в папки, то надо будет писать рекурсивную ф-цию, в которой вставить дважды код из примера с ключами dir отдельно для папок и отдельно для файлов, сохраняя в разные таблицы, и по таблице папок потом рекурсивно вызывать саму ф-цию...
 
Цитата
Suntor написал:
Если нужно чтобы всё в итоге линейно в одну таблицу путями попало, то просто добавить ключ /s к команде dir.
Да, то что нужно ,Спасибо большое!!!

Цитата
Suntor написал:
А если нужно чтобы создалась структура папок, их подпапок и файлов с именами вложенными таблица в таблицу повторяющими вложение подпапок и файлов в папки, то надо будет писать рекурсивную ф-цию, в которой вставить дважды код из примера с ключами dir отдельно для папок и отдельно для файлов, сохраняя в разные таблицы, и по таблице папок потом рекурсивно вызывать саму ф-цию...
Вот тут не совсем понятно,("хоть это и не требуется сейчас, но интересно для изучения , на будущее"),а как определить где папка ,где файл и как зайти в подпапку?
 
Цитата
Archie_ написал:
Вот тут не совсем понятно,("хоть это и не требуется сейчас, но интересно для изучения , на будущее"),а как определить где папка ,где файл и как зайти в подпапку?
Сама команда dir определит. Как я и написал, дважды вставить код вызова dir отдельно с ключами для папок и отдельно для файлов. То-есть:
dir /a:d    (для папок)
dir /a:-d    (для файлов)
А найденные папки точно также обходить, рекурсивно вызвав саму функцию из себя ещё раз для каждой папки.
 
http://lua-users.org/wiki/DirTreeIterator
 
Здравствуйте.
При выполнении команды "dir", мигает окно КОМАНДНОЙ СТРОКИ, например:

for line in io.popen("dir \""..p.."\" /a /b", "r"):lines() do
   t[#t+1] = line
end

Можно ли избавиться от этого мигания.
Страницы: 1
Читают тему
Наверх