1
我有一個lua腳本A.lua,它通過指定package.path來調用B.lua。在B.lua中,它必須使用它的絕對路徑。我的問題是,如何才能在B.lua中獲得B.lua的絕對路徑?由於PWD只是返回當前工作目錄,因此「PWD」不起作用。調試也不起作用,因爲B.lua不是從命令行調用的。任何人有更好的解決方案如何獲得lua腳本文件的絕對路徑
我有一個lua腳本A.lua,它通過指定package.path來調用B.lua。在B.lua中,它必須使用它的絕對路徑。我的問題是,如何才能在B.lua中獲得B.lua的絕對路徑?由於PWD只是返回當前工作目錄,因此「PWD」不起作用。調試也不起作用,因爲B.lua不是從命令行調用的。任何人有更好的解決方案如何獲得lua腳本文件的絕對路徑
如果您有一個package.path
的文件夾require
能夠找到,那麼您還可以使用package.searchpath
輕鬆獲取路徑。
如果"foo.bar.baz"
是在其下require
將加載該文件,然後
package.searchpath("foo.bar.baz", package.path)
--> (e.g.) "/usr/share/lua/5.3/foo/bar/baz.lua"
讓你的路徑名。
這適用於Lua 5.2或更新版本,以及LuaJIT。
在「B.lua」第二個可變參數是路徑:local _,path = ...;打印(路徑)'。但是路徑並不是絕對的,這在Lua 5.1中不起作用 –