Lua函数将Windows路径转换为unix路径

时间:2017-02-14 14:29:07

标签: lua

我坚持使用反斜杠作为路径分隔符的Windows的永恒问题。我想要一个将Windows路径转换为unix路径的Lua函数。

  1. 我知道我可以通过转义反斜杠来指定变量的路径,例如

    filename =" P:\\ user \\ scripts \\ config.lua"

  2. 我知道这可以使用不同的字符串分隔符来完成,例如

    filename = [[P:\ user \ scripts \ config.lua]]

  3. 我知道我不能使用string.gsub,因为在传递给gsub之前,单个反斜杠被删除或解释为转义序列。

  4. 因此,当我将一个文件名分配给一个变量时,因为使用了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]]))
    

1 个答案:

答案 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