2015-01-07 44 views
1

当我尝试从文本文件读取/写入文件时,我正在努力处理Lua中的权限错误。正如你在下面看到的,我从io.open函数中提取了错误信息,并且得到了“file.txt:permission denied”。如果它有帮助,我使用Mac OSX Yosemite和Love2D引擎。Lua文件处理错误:权限被拒绝(Mac OSX Yosemite)

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上),而我以前从来没有遇到过这个问题。

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

回答

3

在LÖVE你的游戏不应该通过io与文件系统直接交互。请使用love.filesystem.newFile,这样您的资产仍可在.love(zip)文件中使用。这也应该处理你在OS X上的权限问题,因为它会写入/ Users/user/Library/Application Support/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 
0

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

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

您没有访问该应用程序的运行文件系统。

+0

我试过了,由于某种原因它返回了一个零值。但是,包含此代码的文件夹直接位于Home文件夹下(在我的例子中为“chris”)。有没有办法改变这个文件系统的访问级别? – cmimm101