Lua检查文件是否打开

时间:2015-03-04 23:37:57

标签: lua

我用:

file = io.open(path)

打开路径指定的文件。现在,经过一些操作后,我会使用file:close()来关闭文件,但有些时候我甚至没有打开文件来关闭它。如何检查文件是否已打开?

2 个答案:

答案 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