Lua file handling error: Permission Denied (Mac OSX Yosemite)

Lua file handling error: Permission Denied (Mac OSX Yosemite)

我在尝试 read/write from/to 文本文件时遇到 Lua 中的权限错误。正如您在下面看到的,我已经从 io.open 函数中提取了错误消息,并且得到了 "file.txt: permission denied"。如果有帮助,我正在使用 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),我以前从未遇到过这个问题。

如有任何反馈,我们将不胜感激! :)

检查您的当前目录。对于 OS X 和 Linux 类似的系统:

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

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

在 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