首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Lua从path返回目录路径

Lua从path返回目录路径
EN

Stack Overflow用户
提问于 2012-02-02 03:41:04
回答 3查看 9.5K关注 0票数 2

我有一个字符串变量,表示某个文件的完整路径,例如:

Linux上的x = "/home/user/.local/share/app/some_file"

Windows上的x = "C:\\Program Files\\app\\some_file"

我想知道是否有一些编程的方法,比手动拆分字符串到目录路径更好

当我从其他应用程序使用Lua扩展时,如何在Lua中返回目录路径(不带文件名的路径),而无需加载其他库(如LFS )?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-02 03:52:31

在普通的Lua中,没有更好的方法。Lua在路径上没有任何有效的东西。你必须使用模式匹配。这一切都符合这样一种心态,即提供工具来做很多事情,但拒绝包括可以用一行程序替换的函数:

代码语言:javascript
复制
-- onelined version ;)
--    getPath=function(str,sep)sep=sep or'/'return str:match("(.*"..sep..")")end
getPath=function(str,sep)
    sep=sep or'/'
    return str:match("(.*"..sep..")")
end

x = "/home/user/.local/share/app/some_file"
y = "C:\\Program Files\\app\\some_file"
print(getPath(x))
print(getPath(y,"\\"))
票数 10
EN

Stack Overflow用户

发布于 2017-04-06 23:49:23

这是一个基于jpjacobs解决方案的平台无关且更简单的解决方案:

代码语言:javascript
复制
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\
票数 3
EN

Stack Overflow用户

发布于 2017-05-15 02:26:40

对于这种情况,您可以只编写自己的代码。但也有一些纯Lua的库可以做到这一点,比如lua-pathPenlight

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9102126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档