Создание каталога

Файлы / Базовые операции

local lfs = require("lfs")

local created = lfs.mkdir("data")
-- created = true

-- An existing directory: nil and a message
local again, err = lfs.mkdir("data")
-- again = nil
-- err = File exists

-- mkdir makes one level, the parents must exist
local flat = lfs.mkdir("data/2027/01")
-- flat = nil

-- Several levels: make each one that is missing
local function make_dirs(path)
  -- An absolute path keeps its first slash
  local current = path:match("^/") or ""
  for part in path:gmatch("[^/]+") do
    current = current .. part
    if lfs.attributes(current) == nil then
      assert(lfs.mkdir(current))
    end
    current = current .. "/"
  end
end

local nested = "data/2027/01"
make_dirs(nested)
local mode = lfs.attributes(nested, "mode")
-- mode = directory

print("created = " .. tostring(created))
print("again = " .. tostring(again))
print("err = " .. err)
print("flat = " .. tostring(flat))
print("mode = " .. mode)