如何获取 Lua 脚本文件的绝对路径

我有一个 Lua 脚本 A.lua,它通过指定 package.path 调用 B.lua。在 B.lua 中,它必须使用其绝对路径。我的问题是,如何在 B.lua 中获取 B.lua 的绝对路径?"PWD" 不起作用,因为 PWD 只返回当前工作目录。debug 也不起作用,因为 B.lua 不是从命令行调用的。有更好的解决方案吗?

点赞
用户805875
用户805875

如果在 package.path 中能够找到 require 所需的文件,那么使用 package.searchpath 也可以轻松获得路径。

如果 "foo.bar.baz"require 加载文件的名称,则

package.searchpath( "foo.bar.baz", package.path )
--> (例如) "/usr/share/lua/5.3/foo/bar/baz.lua"

可以获取路径。

这适用于 Lua 5.2 或更新版本以及 LuaJIT。

2017-06-13 17:13:23