Recherche de fichiers avec des modèles génériques en Java
La question à résoudre consiste à trouver un moyen d'identifier les fichiers qui correspondent à une chaîne générique, telle que "../Test?/sample*.txt", en Java. Malgré la disponibilité du WildcardFileFilter d'Apache commons-io, il peut y avoir une certaine confusion quant à son implémentation pour rechercher des fichiers dans des chemins de répertoire relatifs.
Utilisation d'Apache Commons-IO
Pour utilisez FileUtils depuis Apache commons-io, l'extrait de code suivant peut être utilisé :
File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter);
Ce code sera renvoie un tableau de fichiers correspondants dans le répertoire actuel.
Gestion des répertoires
Pour rechercher des fichiers dans des sous-répertoires, tels que "Test1" et "Test4" de l'exemple modèle, une boucle supplémentaire peut être ajoutée :
File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java"); for (int i=0; i<dirs.length; i++) { File dir = dirs[i]; if (dir.isDirectory()) { File[] files = dir.listFiles(new WildcardFileFilter("sample*.java")); } }
Cela localisera et répertoriera de manière récursive les fichiers qui correspondent au caractère générique spécifié pattern.
Autres considérations
Une approche alternative mentionnée dans la question consiste à examiner le code source d'Apache Ant, qui utilise une syntaxe générique. Cependant, ce n'est peut-être pas la solution la plus simple pour la plupart des utilisateurs.
De plus, il convient de noter que Java Runtime Environment (JRE) analyse automatiquement les caractères génériques simples dans les arguments de ligne de commande, simplifiant ainsi le processus pour les scénarios de base.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!