我坚持使用反斜杠作为路径分隔符的Windows的永恒问题。我想要一个将Windows路径转换为unix路径的Lua函数。
我知道我可以通过转义反斜杠来指定变量的路径,例如
filename =" P:\\ user \\ scripts \\ config.lua"
我知道这可以使用不同的字符串分隔符来完成,例如
filename = [[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]]))
答案 0 :(得分:3)
适合我:
$ 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