Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua函数,用于将windows路径转换为unix路径_Lua - Fatal编程技术网

Lua函数,用于将windows路径转换为unix路径

Lua函数,用于将windows路径转换为unix路径,lua,Lua,我一直被窗口使用反斜杠作为路径分隔符的问题困扰着。我想要一个将windows路径转换为unix路径的Lua函数 我知道我可以通过转义反斜杠为变量指定路径,例如 filename=p:\\user\\scripts\\config.lua 我知道这可以使用不同的字符串分隔符来完成,例如 文件名=[[p:\user\scripts\config.lua]] 我知道我不能使用string.gsub,因为在传递给gsub之前,单个反斜杠要么被删除,要么被解释为转义序列 因此,使用windows时,当我将

我一直被窗口使用反斜杠作为路径分隔符的问题困扰着。我想要一个将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