将 .love 文件移动到其他地方后,无法读取 Lua 中的文件

Can't read file in Lua after I moved the .love file elsewhere

提问人:Capnsockless 提问时间:9/28/2023 更新时间:9/29/2023 访问量:44

问:

所以我压缩了我的 Love2D 项目,当我在同一文件夹中启动它时它可以工作,但在其他地方我的 io.open 不起作用。这是我的文件系统:

...
utils
   |json.lua  <-- library I use for encoding and decoding
   |JSONHandler.lua
   |parameters.json
conf.lua
main.lua
...

我在JSONHandler.lua中收到错误,其中我有:

local json = require "utils/json"

Handler = {
   filename = "utils/parameters.json",
   params = {},
   ...
}

function Handler:init()
   local o = {}
   setmetatable(o, self)
   self.__index = self

   local file = io.open(self.filename, "r")
   local content = file:read("a")
   ...

我的文件最终为

我尝试了许多不同的文件相对路径,但没有任何效果,所以我想知道 .love 文件如何处理路径,我应该如何跟踪我的parameters.json

文件 lua path io love2d

评论

2赞 EJam 9/28/2023
也许试试love.filesystem?或者你可以使用参数 .lua 和表来代替配置。
0赞 ESkri 9/28/2023
在zip存档中吗?parameters.json

答:

1赞 Luke100000 9/29/2023 #1

当您不移动文件时,它可能会起作用,因为它仍然可以访问工作目录中的原始文件。.love

Lua 无法读取开箱即用的 zip 文件中的内容,但 Love2d 提供了 love.filesystem

它也有文件包装器,但如果你只想阅读内容,最好阅读

local content = love.filesystem.read(self.filename)

请注意,您只能读取 love zip、工作目录和保存目录中的文件。