Lua文件处理错误:权限被拒绝(Mac OSX Yosemite)

当我试图从/向文本文件读/写时,我在 Lua 中遇到了权限错误。如下所示,我从 io.open 函数中提取了错误消息,并得到了“file.txt: 权限被拒绝”。如果有帮助的话,我使用的是 Mac OSX Yosemite 和 Love2D 引擎。

function fileWrite()
    outputFile, error = io.open("new.txt", "w")
    if outputFile then
        for k,v in pairs(clicks) do
            outputFile:write(tostring(v[1]) .. "," .. tostring(v[2]) .. "\n")
        end
        outputFile:close()
    else
        errorText = error
    end
end

我是否犯了愚蠢的错误?我以前在 Lua 中处理过文件写入(在 Windows 7 上),以前从未遇到过这个问题。

非常感谢任何反馈! :)

点赞
用户1855568
用户1855568

检查您当前的目录。适用于Mac OS X和Linux等系统:

require "os"
print( os.getenv("PWD") )

您无法访问应用程序运行的文件系统。

2015-01-07 23:41:04
用户2726734
用户2726734

在LÖVE中,你的游戏不应该直接通过io与文件系统交互。取而代之,应该使用love.filesystem.newFile让你的资源仍然可以在.love(zip)文件中使用。这也应该解决了你在OS X上的权限问题,因为它将写入到/Users/user/Library/Application Support/LOVE/目录下,而这个目录 love 会有写入权限。

function fileWrite()
    outputFile, error = love.filesystem.newFile("new.txt")
    if outputFile:open("w") then
        outputFile:write("Hello World!")
        outputFile:close()
    else
        print(error)
    end
end
2015-01-08 01:22:49