我用:
file = io.open(path)
打开路径指定的文件。现在,经过一些操作后,我会使用file:close()
来关闭文件,但有些时候我甚至没有打开文件来关闭它。如何检查文件是否已打开?
答案 0 :(得分:2)
hjpotter92建议有效,条件并非总是错误:
> if file then print("File was opened") else print("What File?") end
What File?
> file = io.open("file.txt")
> if file then print("File was opened") else print("What File?") end
File was opened
> file:close()
> file = nil -- assign to nil after closing the file.
> if file then print("File was opened") else print("What File?") end
What File?
>
如果你遵循这种模式,那么只关闭一个打开的文件很容易:
if math.random() < .5 then
file = open("file.txt") -- maybe it opened
end
if file then -- close only if opened
file:close()
file = nil
end
当且仅当文件存在(不是零)时,文件才会打开。
答案 1 :(得分:1)
使用标准Lua调用来检查文件是否打开非常困难,但是如果它只是一个访问文件的脚本您可以在打开文件时将变量设置为True并在关闭之前检查它。 / p>
您可能会发现此页面有用: Lua check if a file is open or not