verificar una saber net existe example directorio comprobar carpeta borrar archivo file-io lua file-exists

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. :)