在Lua中检测文件打开错误。

我正在iOS上使用Lua,并遇到使用io.open("filename.txt","w")打开文件的问题。我知道我得到了 nil,但是有没有办法检测失败原因,并根据原因进行解决呢?类似于C语言的errno吗?

原文链接 https://stackoverflow.com/questions/21680985

点赞
stackoverflow用户142162
stackoverflow用户142162

文档的介绍中可以得知:

io.open (filename [, mode])

这个函数会按照字符串模式mode打开一个文件,并返回一个新的文件句柄,如果出现错误,就会返回nil和一个错误信息。

以下是使用从函数返回的第二个值的示例用法:

local f, err = io.open("filename.txt", "w")
if f then
    -- do something with f
else
    print("Error opening file: " .. err)
end

如果进程没有打开文件的权限,例如,将会输出以下信息:

Error opening file: filename.txt: Permission denied

2014-02-10 15:30:03