Игнорирование спец.символов в gsub

CaJlaT

07.11.2024 14:55
Автор темы
Модератор
2,848
2,697
Версия MoonLoader
.026-beta
Столкнулся с проблемой замены строк, в которых есть спец.символы, когда делал простой каталог.
Возможно ли игнорировать спец.символы в строке?
Lua:
for _, v in pairs(getdir(dir)) do
    if imgui.Selectable((v[2] == 'file' and getIcon(v[1]) or fa.ICON_FA_FOLDER)..' '..u8(v[1]), false) then
        if v[2] == 'directory' then
            if v[1] == '...' and dir:match('^.+\\(.*)$') then
                dir = dir:gsub('\\'..dir:match('^.+\\(.*)$'), '') -- Не хочет заменять папки с спец.символами, но проверка выше срабатывает
            elseif v[1] ~= '...' then
                dir = dir..'\\'..v[1]
            end
        end
    end
end
Функция получения файлов и папок:
Lua:
function getdir(dir)
    local t = {}
    table.insert(t, {'...', 'directory'})
    for entry in lfs.dir(dir) do
        if entry ~= "." and entry ~= ".." then
            local path = dir.."/"..entry
            local attr = lfs.attributes(path)
            if attr ~= nil then table.insert(t, {entry, attr.mode}) end
        end
    end
    table.sort(t, function(a, b)
        if a[2] == 'directory' and b[2] ~= 'directory' then return true
        elseif a[2] ~= 'directory' and b[2] == 'directory' then return false end
        return a[1] < b[1]
    end)
    return t
end

На видео папки с символом '-' не хотят закрываться