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

Я пробовал это, и по какой-то причине он получил нулевое значение. Однако папка, содержащая этот код, находится непосредственно под папкой «Главная» (в моем случае «chris»). Есть ли способ изменить уровни доступа к этой файловой системе? – cmimm101

Смежные вопросы