Lua вернуть путь к каталогу из пути - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть строковая переменная, которая представляет полный путь к какому-либо файлу, например:

x = "/home/user/.local/share/app/some_file" в Linux
или
x = "C:\\Program Files\\app\\some_file" в Windows

I'mинтересно, есть ли какой-то программный способ, лучше, чем разделять строку вручную, чтобы получить путь к каталогу

Как мне вернуть путь к каталогу (путь без имени файла) в Lua, не загружая дополнительную библиотеку, такую ​​как LFS, как я используюLua расширение из другого приложения?

Ответы [ 3 ]

8 голосов
/ 01 февраля 2012

На простом Lua лучшего пути нет.Луа ничего не работает на пути.Вам придется использовать сопоставление с образцом.Это все из-за менталитета предлагать инструменты, чтобы делать много, но отказываясь включать функции, которые можно заменить однострочными:

1 голос
/ 14 мая 2017

Для чего-то подобного вы можете просто написать свой собственный код. Но есть и библиотеки на чистом Lua, которые делают это, например lua-path или Penlight .

1 голос
/ 06 апреля 2017

Вот платформонезависимое и более простое решение на основе решения jpjacobs:

function getPath(str)
    return str:match("(.*[/\\])")
end

x = "/home/user/.local/share/app/some_file"
y = "C:\\Program Files\\app\\some_file"
print(getPath(x)) -- prints: /home/user/.local/share/app/
print(getPath(y)) -- prints: C:\Program Files\app\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...