Как узнать имена всех файлов в папке?

К примеру у меня есть папка, в ней есть файлы(точное количество я не знаю файлов). Мне надо узнать название каждого файла с его расширением. Использовать какие-то библиотеки мне не надо. Пример: пример файлов


Ответы (3 шт):

Автор решения: Ainar-G

Как видите, в разделах про работу с файлами и средства ОС ничего про чтение директорий нету. Так что прямой ответ на ваш вопрос — нельзя, по крайне мере без костылей с popen.

На АнглоСО есть вопрос со множеством вариантов ответов, в том числе через popen и внешние библиотеки. Также, в книге Programming In Lua есть глава про создание итератора директорий через C API.

→ Ссылка
Автор решения: Andrej Levkovitch

Как уже было сказано: дефолтными средствами 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
→ Ссылка
Автор решения: Egor Skriptunoff

Специфичного для русской винды ответа на этот вопрос на англоСО нет, поэтому он должен быть здесь )))
Кодировка строк (путь к папке и возвращаемые имена файлов) - 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()
→ Ссылка