Rechercher un fichier ou un répertoire (file.find)
Déclaration
liste de fichiers = file.find(mode de correspondance)
Paramètres
- mode de correspondance
Type table | chaîne
Valeur de retour
- liste de fichiers
Type table, renvoie la liste des noms de fichiers trouvés
Description
Recherche des fichiers ou répertoires avec un motif générique ou une correspondance exacte Lua, puis renvoie la liste des noms correspondants.
Si lemode de correspondanceest une chaîne, utilise un motif générique ; ce motif prend uniquement en charge les trois caractères génériques *, ? et [...].
Si lemode de correspondanceest une table, utilise une correspondance exacte Lua.
Cette fonction est disponible dans les versions postérieures à 20250416
Exemple
Motif générique simple
-- Motif générique simple, prenant uniquement en charge * ? [...]
-- * représente n’importe quelle longueur de caractères, y compris une longueur nulle
-- ? représente un seul caractère quelconque
-- [...] représente un caractère quelconque entre crochets ; par exemple [abc]haha.txt correspond à ahaha.txt, bhaha.txt et chaha.txt
-- [!...] représente un caractère qui n’est pas entre crochets ; par exemple [!abc]haha.txt ne correspond pas à ahaha.txt, bhaha.txt ou chaha.txt, mais correspond à un seul autre caractère comme xhaha.txt
local results = file.find("/private/var/mobile/Containers/Shared/AppGroup/*/Library/Preferences/*.plist")
Motif générique exact
-- Motif de correspondance exacte Lua
-- La correspondance exacte construit le motif par segments d’une table Lua ; les chaînes sont comparées littéralement et une fonction renvoyant vrai ou faux peut déterminer si chaque segment est valide
local results = file.find{ --<--- Remarque : il s’agit d’accolades
"/private/var/mobile/Containers/Shared/AppGroup/", -- Une chaîne ordinaire ne nécessite pas de motif
function(s) return s:match("^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$") end, -- Utilise une fonction pour faire correspondre le segment courant
"/Library/Preferences/",
function(s) return s:match("%.plist$") end, -- Utilise une fonction pour faire correspondre le segment courant
}
-- Le motif de correspondance exacte Lua peut également entourer une seule chaîne d’accolades pour construire une fonction de correspondance simplifiée
local results = file.find{ --<--- Remarque : il s’agit d’accolades
"/private/var/mobile/Containers/Shared/AppGroup/", -- Une chaîne ordinaire ne nécessite pas de motif
{"^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$"}, -- Entoure une chaîne seule d’une table pour indiquer qu’il s’agit d’un segment utilisant un motif
"/Library/Preferences/", -- Une chaîne ordinaire ne nécessite pas de motif
{"%.plist$"}, -- Entoure une chaîne d’une table pour indiquer qu’il s’agit d’un segment utilisant un motif
}