2014-10-07 49 views
1

我正在寫一個LUA應用程序將包含一個相對路徑,如果沒有安裝Lua事情就會將文件複製到文件夾clibs例如如何獲得安裝Lua的全局路徑

getPath = getWhereLuaInstalled (could be C:\program file(x86)\lua\5.1 or c:\lua\5.1..) 

使用package.path將爲我返回lua將搜索查找可執行文件的所有路徑。 任何想法?

感謝

+0

爲什麼'package.cpath'你想要什麼?是的,它將包含多個路徑,但它們都應該工作。 – 2014-10-07 13:58:41

+0

@EtanReisner嗨,以及我只需要一個路徑將文件複製到lua/5.1/clibs並將其用作默認路徑,這就是爲什麼我不需要所有這些文件 – jprbest 2014-10-07 14:03:48

+0

解析出來,比如說從' package.cpath'。此外,Lua經常嵌入到另一個程序中,因此不會真正「自行安裝」。 – 2014-10-07 14:06:53

回答

2

它看起來像你這樣的設計對於Windows機器(.dll和您的示例路徑表明這一點),所以這是一個可能的解決方案。

local io = require "io" 

function getWhereLuaInstalled() 
    local handle = io.popen('where lua') 
    local path = handle:read('*a'):match("(.*\\)") 
    handle:close() 
    return path 
end 

這可以很容易通過用which lua替換where lua被修改爲Linux系統。

1

通常,您只需使用點(".")。你可以添加相對路徑:./my/relative/path