Buscar archivos o directorios (file.find)
Declaración
lista_de_archivos = file.find(patrón_de_coincidencia)
Parámetros
- patrón de coincidencia
Tipo tabla | Tipo texto
Valores devueltos
- lista de archivos
Tipo tabla; devuelve la lista de nombres de archivo encontrados
Descripción
Busca archivos o directorios mediante un patrón comodín o una coincidencia exacta de Lua y devuelve la lista de nombres de archivo coincidentes.
Sipatrón de coincidenciaes una cadena, se usa la coincidencia por comodines, que solo admite estos tres comodines: *, ? y [...].
Sipatrón de coincidenciaes una tabla, se usa la coincidencia exacta de Lua.
Esta función solo está disponible a partir de la versión 20250416
Ejemplos
Patrón de comodines simple
-- Patrón de comodines simple; solo admite los tres comodines básicos: * ? [...]
-- * coincide con cualquier cantidad de caracteres (también puede ser 0)
-- ? coincide con un único carácter cualquiera
-- [...] coincide con un único carácter incluido entre corchetes; por ejemplo, [abc]haha.txt coincide con ahaha.txt, bhaha.txt y chaha.txt
-- [!...] coincide con un único carácter que no esté entre corchetes; por ejemplo, [!abc]haha.txt no coincide con ahaha.txt, bhaha.txt ni chaha.txt, pero sí con un carácter como xhaha.txt
local results = file.find("/private/var/mobile/Containers/Shared/AppGroup/*/Library/Preferences/*.plist")
Patrón de coincidencia exacta
-- Patrón de coincidencia exacta de Lua
-- La coincidencia exacta construye el patrón mediante segmentos de una tabla Lua; las cadenas se comparan como literales y una función que devuelve true o false puede decidir si el segmento actual es válido
local results = file.find{ --<--- observa que aquí se usan llaves
"/private/var/mobile/Containers/Shared/AppGroup/", -- Las cadenas normales no necesitan coincidencia de patrones
function(s) return s:match("^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$") end, -- Usa una función para coincidir con el segmento actual
"/Library/Preferences/",
function(s) return s:match("%.plist$") end, -- Usa una función para coincidir con el segmento actual
}
-- El patrón exacto de Lua también puede envolver una cadena individual entre llaves para construir una función de coincidencia sencilla
local results = file.find{ --<--- observa que aquí se usan llaves
"/private/var/mobile/Containers/Shared/AppGroup/", -- Las cadenas normales no necesitan coincidencia de patrones
{"^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$"}, -- Envolver una cadena individual en una tabla indica un segmento que usa coincidencia de patrones
"/Library/Preferences/", -- Las cadenas normales no necesitan coincidencia de patrones
{"%.plist$"}, -- Envolver una cadena individual en una tabla indica un segmento que usa coincidencia de patrones
}