этот модуль упрощает работу с файлами и директориями.
для начала нужно создать объект
далее нужно вызвать метод submit, чтобы получить все файлы и папки (сами не обновляются, поэтому его лучше использовать в цикле)
теперь все файлы можно получить с помощью метода files, который возвращает массив с объектами.
объекты бывают двух типов: folder и file.
методы этих объектов:
пример:
для начала нужно создать объект
Lua:
local folder = require 'folder'
local ml = folder.new(getWorkingDirectory())
Lua:
ml:submit('*')
объекты бывают двух типов: folder и file.
методы этих объектов:
Lua:
-- file
object:type() -- возвращает тип объекта
object:get_name() -- возвращает имя
object:get_path() -- возвращает полный путь к каталогу, в котором находится файл
object:full_path_name() -- возвращает полное имя файла
object:remove() -- удаляет файл
object:rename(newname) -- переименовывает файл
object:set_attributes(attributes) -- устанавливает атрибуты файлу
object:get_attributes() -- возвращает атрибуты файла
object:move(newpath) -- перемещает файл
object:open() -- возвращает дескриптор файла
-- folder
-- наследует все методы файла, кроме open, и перегружает некоторые методы. Имеет два уникальных:
object:submit(mask) -- загружает файлы с указанной маской из данной папки
object:files() -- возвращает объекты, которые находятся в данной папке.
пример:
Lua:
local folder = require 'folder'
local imgui = require 'imgui'
local key = require 'vkeys'
local lib = folder.new(getWorkingDirectory() .. '\\lib')
local show_menu = false
function imgui.OnDrawFrame()
if show_menu then
imgui.Begin('window')
for idx, file in ipairs(lib:files()) do
imgui.Text(string.format('(%s)%s', file:type(), file:get_name()))
end
imgui.End()
end
end
function main()
while true do
if wasKeyPressed(key.VK_P) then
show_menu = not show_menu
imgui.Process = show_menu
end
if show_menu then
lib:submit("*")
end
wait(0)
end
end