如何使用相对路径访问txt文件

我现在正在尝试使用 io.open(file_name, "r") 打开一个文件

我的目录结构是

parent_dir
   -src
      -main.lua
   -tests
      -test.txt

我现在正在尝试在main.lua中从tests文件夹中打开txt文件,使用 io.open(file_name, "r")但它不会识别该文件存在。如果我将绝对路径放入file_name中,它就可以工作了。我不知道如何格式化一个相对路径?我尝试过一些版本的 ../../../tests/test.txt,但似乎无法使其正常工作。 实际文件的路径类似于/Users/user_name/parent_dir/tests/test.txt

点赞
用户2858170
用户2858170

../ 语法用于指定相对路径的是正确的。

但是这并不是相对于你的 Lua 脚本的位置,而是相对于你当前的工作目录。

请参考 在 Lua 中获取当前工作目录

你不能在 Lua 脚本中更改当前工作目录,除非你使用像 LuaFileSystem 这样的库。

如果你正在运行一个单独的脚本,你可以检查全局变量 arg[0](如果它不是 nil)是否包含了该脚本的路径。你可以使用它来从你的脚本位置构建一个绝对路径。

2019-04-16 23:20:23