Как узнать имена всех файлов в папке?
К примеру у меня есть папка, в ней есть файлы(точное количество я не знаю файлов). Мне надо узнать название каждого файла с его расширением. Использовать какие-то библиотеки мне не надо. Пример: 
Ответы (3 шт):
Как видите, в разделах про
работу с файлами
и
средства ОС
ничего про чтение директорий нету. Так что прямой ответ на ваш
вопрос — нельзя, по крайне мере
без костылей с popen.
На АнглоСО есть
вопрос
со множеством вариантов ответов, в том числе через popen
и внешние библиотеки. Также, в книге Programming In Lua есть
глава
про создание итератора директорий через C API.
Как уже было сказано: дефолтными средствами lua это не сделать. Но есть очень хорошая (и распространенная) библиотека lfs. Например для того, чтобы получить все имена файлов в текущей директории можно сделать так:
local lfs = require("lfs")
for entry in lfs.dir(".") do
local mode = lfs.attributes("./" .. entry, "mode")
if (mode == "file") then
print(entry, mode)
end
end
Специфичного для русской винды ответа на этот вопрос на англоСО нет, поэтому он должен быть здесь )))
Кодировка строк (путь к папке и возвращаемые имена файлов) - win1251
local dir_path = [[C:\путь\к\папке\]]
local dir = io.popen('chcp 1251|dir /a-d /b "'..dir_path..'"')
for filename in dir:lines() do
print(filename)
end
dir:close()