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

时间:2015-01-07 23:12:18

标签: macos file-io lua file-permissions love2d

在尝试从/向文本文件读取/写入时,我正在努力解决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

我是否有机会在任何地方犯一个愚蠢的错误?我之前(在Windows 7上)处理过Lua中的文件处理,我之前从未遇到过这个问题。

任何反馈都将不胜感激! :)

2 个答案:

答案 0 :(得分:3)

在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

答案 1 :(得分:0)

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

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

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