2015-01-07 45 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