如果文件为/etc/haproxy/haproxy.cfg
,则输出应为目录名/etc/haproxy
。
目前我正在使用
file = "/etc/haproxy/haproxy.cfg"
sep = "/"
file:match("(.*"..sep..")")
但它不是独立于平台的,并且在Windows上会失败,因为路径分隔符不同。那么使用lfs模块是否存在一种平台无关的实现方法?
答案 0 :(得分:4)
package.config:sub(1,1)
为您提供运行Lua的平台的路径分隔符。请参阅manual。
答案 1 :(得分:2)
我不确定您是否要以独立于平台的方式解析路径或使用路径,但要解析您可以使用{ {1}}模式而不是[\\/]
,它将匹配不同类型的路径分隔符:
/
如果您想使用这些路径打开/访问文件,那么使用print(file:match("(.*[\\/])"))
作为路径分隔符将在Windows上使用Lua API。