Не обязательно самый идеальный, так как я не знаю вашей конкретной цели для этого или если у вас есть желаемая реализация, но вы можете просто открыть файл, чтобы проверить его существование.
local function file_exists(filename)
local file = io.open(filename, "r")
if (file) then
-- Obviously close the file if it did successfully open.
file:close()
return true
end
return false
end
io.open
возвращает nil
, если не удается открыть файл. В качестве дополнительного примечания, именно поэтому он часто используется с assert
для создания полезного сообщения об ошибке, если он не может открыть данный файл. Например:
local file = assert(io.open("hello.txt"))
Если файл hello.txt
не существует, вы должны получить ошибку, похожую на stdin:1: hello.txt: No such file or directory
.