Проверьте, существует ли файл с Lua - PullRequest
61 голосов
/ 14 февраля 2011

Как я могу проверить, существует ли файл с использованием Lua?

Ответы [ 12 ]

0 голосов
/ 19 февраля 2019

Не обязательно самый идеальный, так как я не знаю вашей конкретной цели для этого или если у вас есть желаемая реализация, но вы можете просто открыть файл, чтобы проверить его существование.

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.

0 голосов
/ 14 февраля 2011
IsFile = function(path)
print(io.open(path or '','r')~=nil and 'File exists' or 'No file exists on this path: '..(path=='' and 'empty path entered!' or (path or 'arg "path" wasn\'t define to function call!')))
end

IsFile()
IsFile('')
IsFIle('C:/Users/testuser/testfile.txt')

Выглядит хорошо для проверки своего пути. :)

...