Я нашел этот фрагмент кода внутри библиотеки, которую я использую:
function is_dir(path)
local f = io.open(path, "r")
local ok, err, code = f:read(1)
f:close()
return code == 21
end
Я не знаю, какой код был бы в Windows, но в Linux / BSD / OSX он работает нормально.