Lua函数,用于将windows路径转换为unix路径
我一直被窗口使用反斜杠作为路径分隔符的问题困扰着。我想要一个将windows路径转换为unix路径的Lua函数 我知道我可以通过转义反斜杠为变量指定路径,例如 filename=p:\\user\\scripts\\config.lua 我知道这可以使用不同的字符串分隔符来完成,例如 文件名=[[p:\user\scripts\config.lua]] 我知道我不能使用string.gsub,因为在传递给gsub之前,单个反斜杠要么被删除,要么被解释为转义序列 因此,使用windows时,当我将文件名分配给变量时,会出现问题,因为字符串包含单个反斜杠,例如Lua函数,用于将windows路径转换为unix路径,lua,Lua,我一直被窗口使用反斜杠作为路径分隔符的问题困扰着。我想要一个将windows路径转换为unix路径的Lua函数 我知道我可以通过转义反斜杠为变量指定路径,例如 filename=p:\\user\\scripts\\config.lua 我知道这可以使用不同的字符串分隔符来完成,例如 文件名=[[p:\user\scripts\config.lua]] 我知道我不能使用string.gsub,因为在传递给gsub之前,单个反斜杠要么被删除,要么被解释为转义序列 因此,使用windows时,当我将
filename = arg[0]
filename = debug.getinfo(2, "S").source:sub(2)
如何将此字符串转换为带有正斜杠的unix样式字符串
function unixpath(filename)
if filename~=nil then
else
return nil
end
end
print(unixpath(arg[0]))
print(unixpath(debug.getinfo(2, "S").source:sub(2)))
print(unixpath([[P:\user\scripts\config.lua]]))
为我工作:
$ lua
Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
> w = "c:\\windows\\system32"
> w
c:\windows\system32
> w:gsub("\\", "/")
c:/windows/system32 2
感谢返回文件名:gsub\\,/适用于我的所有测试用例。不要忘记gsub返回2值。有时它很重要。open[[E:/TEMP/test]]在Lua5.1和WXP上工作-为什么需要转换?Unix没有驱动器P