folder

Статус
В этой теме нельзя размещать новые ответы.

LUCHARE

Известный
Автор темы
Друг
545
687
этот модуль упрощает работу с файлами и директориями.

для начала нужно создать объект
Lua:
local folder = require 'folder'

local ml = folder.new(getWorkingDirectory())
далее нужно вызвать метод submit, чтобы получить все файлы и папки (сами не обновляются, поэтому его лучше использовать в цикле)
Lua:
ml:submit('*')
теперь все файлы можно получить с помощью метода files, который возвращает массив с объектами.
объекты бывают двух типов: 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
 

Вложения

  • folder.rar
    1.6 KB · Просмотры: 587

rraggerr

проверенный какой-то
1,626
845
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
@FYP добавь енто в мунлоадер, и да, от коммьюнити ведь дофига всего выходит(либы всякие) , почему бы это не пихнуть в мунлоадер собственно? Чем больше будет либ тем меньше будет тупняка со стороны юзеров которые луа скрипты называют плагинами(привет бразерс)
 
  • Нравится
Реакции: ZKelo и GGOLVER

AnWu

Guardian of Order
Всефорумный модератор
4,683
5,129
@FYP добавь енто в мунлоадер, и да, от коммьюнити ведь дофига всего выходит(либы всякие) , почему бы это не пихнуть в мунлоадер собственно? Чем больше будет либ тем меньше будет тупняка со стороны юзеров которые луа скрипты называют плагинами(привет бразерс)
плюс. фуп где луа рокс(
 
  • Нравится
Реакции: imring

SR_team

like pancake
BH Team
4,707
6,347
Что на счет обращения к папкам, содержащим \ и / в именах?
Screenshot_20180520_110731.png


И что, если эти символы содержатся в именах файлов?
Screenshot_20180520_110901.png
 

SR_team

like pancake
BH Team
4,707
6,347
  • Нравится
Реакции: user116675 и DarkP1xel

LUCHARE

Известный
Автор темы
Друг
545
687
То что стандартный explorer не позволяет задать такие имена, вовсе не значит, что файлы и папки с такими именами не могут существовать в windows
Screenshot_20180520_112600.png
да, но ты не сможешь взаимодействовать с таким файлом через виндовс
 
  • Нравится
Реакции: AnWu и imring

deddosouru

Смотрю аниме, служу Сатане
Друг
2,036
1,317
а из корня диска как файлы и папки выцеплять?
Код:
C:\ZBS\bin\lua.exe: C:\ZBS\lualibs/folder.lua:33: attempt to concatenate local 'name' (a nil value)
upd а еще оно без муна не хочет работать чота
 

Hatiko

Известный
Проверенный
1,469
610
Добавь ещё функцию копирования для полного комплекта.
 
Статус
В этой теме нельзя размещать новые ответы.