file-io - una - saber si un archivo existe en un directorio c#
Lua comprueba si existe un archivo (9)
En aras de la exhaustividad: también puedes probar tu suerte con path.exists(filename)
. No estoy seguro de qué distribuciones de Lua realmente tienen este espacio de nombres de path
( actualización : Penlight ), pero al menos está incluido en Torch:
$ th
______ __ | Torch7
/_ __/__ ________/ / | Scientific computing for Lua.
/ / / _ // __/ __/ _ / | Type ? for help
/_/ /___/_/ /__/_//_/ | https://github.com/torch
| http://torch.ch
th> path.exists(".gitignore")
.gitignore
th> path.exists("non-existing")
false
debug.getinfo(path.exists)
me dice que su fuente está en torch/install/share/lua/5.1/pl/path.lua
y se implementa de la siguiente manera:
--- does a path exist?.
-- @string P A file path
-- @return the file path if it exists, nil otherwise
function path.exists(P)
assert_string(1,P)
return attrib(P,''mode'') ~= nil and P
end
¿Cómo puedo verificar si existe un archivo usando lua?
Si está dispuesto a usar lfs
, puede usar lfs.attributes
. nil
en caso de error:
require "lfs"
if lfs.attributes("non-existing-file") then
print("File exists")
else
print("Could not get attributes")
end
Aunque puede devolver nil
para otros errores distintos de un archivo no existente, si no devuelve nada, el archivo ciertamente existe.
También puede usar el paquete ''rutas''. Here está el enlace al paquete
Entonces en Lua do:
require ''paths''
if paths.filep(''your_desired_file_path'') then
print ''it exists''
else
print ''it does not exist''
end
Tratar
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
pero tenga en cuenta que este código solo prueba si el archivo se puede abrir para leer.
Una respuesta que es windows solo busca archivos y carpetas, y tampoco requiere paquetes adicionales. Devuelve true
o false
.
io.popen("if exist "..PathToFileOrFolder.." (echo 1)"):read''*l''==''1''
io.popen (...): leer ''* l'' - ejecuta un comando en el símbolo del sistema y lee el resultado de la salida estándar CMD
si existe - comando CMD para verificar si existe un objeto
(eco 1) : imprime 1 en la salida estándar del símbolo del sistema
Usando Lua simple, lo mejor que puede hacer es ver si un archivo se puede abrir para leer, según LHF. Esto es casi siempre lo suficientemente bueno. Pero si quiere más, cargue la biblioteca Lua POSIX y verifique si posix.stat(
ruta )
devuelve no- nil
.
Voy a citarme a mí mismo desde here
Yo uso estos (pero en realidad compruebo el error):
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.rename (name1, name2) cambiará el nombre de name1 a name2. Use el mismo nombre y nada debería cambiar (excepto que haya un error grave). Si todo salió bien, devuelve verdadero, de lo contrario devuelve nil y el mensaje de error. Si no desea usar lfs, no puede diferenciar entre archivos y directorios sin intentar abrir el archivo (que es un poco lento, pero está bien).
Entonces sin 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 exists(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 (exists(name) and not isFile(name))
end
Se ve más corto, pero lleva más tiempo ... También abrir un archivo es arriesgado
Diviértete codificando!
Yo suelo:
if os.isfile(path) then
...
end
Estoy usando LUA 5.3.4.
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'')
Se ve bien para probar tu camino. :)