Comment puis-je vérifier si un fichier existe avec lua?
Réponses
Trop de publicités? En utilisant du Lua simple, le mieux que vous puissiez faire est de voir si un fichier peut être ouvert en lecture, conformément à LHF. C'est presque toujours assez bon. Mais si vous en voulez plus, chargez la bibliothèque Lua POSIX et vérifiez si posix.stat(
path )
renvoie non nil
.
Je vais citer moi-même à partir d' ici
J'utilise ces (mais je l'ai fait pour vérifier l'erreur):
require("lfs")
-- no function checks for errors.
-- you should check for them
function isFile(name)
if type(name)~="string" then return false end
if not isDir(name) then
return os.rename(name,name) and true or false
-- note that the short evaluation is to
-- return false instead of a possible nil
end
return false
end
function isFileOrDir(name)
if type(name)~="string" then return false end
return os.rename(name, name) and true or false
end
function isDir(name)
if type(name)~="string" then return false end
local cd = lfs.currentdir()
local is = lfs.chdir(name) and true or false
lfs.chdir(cd)
return is
end
os.renommer(nom1, nom2) change de nom nom1 de nom2. Utiliser le même nom et que rien ne doit changer (sauf qu'il n'y est une monstrueuse erreur). Si tout a bien marché elle renvoie true, sinon elle renvoie nil et le errormessage. Si vous ne voulez pas utiliser l'eft, vous ne pouvez pas différencier les fichiers et répertoires sans essayer d'ouvrir le fichier (qui est un peu lent, mais ok).
Sans LuaFileSystem
-- no require("lfs")
function exists(name)
if type(name)~="string" then return false end
return os.rename(name,name) and true or false
end
function isFile(name)
if type(name)~="string" then return false end
if not exist(name) then return false end
local f = io.open(name)
if f then
f:close()
return true
end
return false
end
function isDir(name)
return (exist(name) and not isFile(name))
end
Il semble plus courte, mais prend plus de temps... Également ouvrir un fichier est-il risqué
Ont le plaisir de codage!
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')
Semble bon pour tester votre chemin. :)