【问题标题】:How to get absolute path of a lua script file如何获取lua脚本文件的绝对路径
【发布时间】:2017-06-13 02:49:45
【问题描述】:

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

【问题讨论】:

  • 在“B.lua”中,第二个可变参数是路径:local _, path = ...; print(path)。但是路径不是绝对的,这在 Lua 5.1 中不起作用

标签: lua


【解决方案1】:

如果您在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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2010-09-18
    • 2021-10-18
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多