在尝试从/向文本文件读取/写入时,我正在努力解决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中的文件处理,我之前从未遇到过这个问题。
任何反馈都将不胜感激! :)
答案 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") )
您无权访问运行应用程序的文件系统。