Comment localiser les fichiers correspondant aux chaînes génériques en Java
En Java, trouver des fichiers qui adhèrent à des modèles de caractères génériques spécifiques est une tâche courante. Lorsqu'on vous donne une chaîne générique telle que "../Test?/sample*.txt", il est essentiel d'identifier les fichiers correspondants qui correspondent à ce modèle.
Une méthode largement acceptée pour relever ce défi consiste à exploiter le WildcardFileFilter. classe de la bibliothèque Apache Commons IO. Ce filtre vous permet de spécifier des expressions génériques qui définissent les critères de recherche de fichiers.
Pour illustrer son utilisation, regardons un exemple :
import org.apache.commons.io.FileUtils; File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter); for (File file : files) { System.out.println(file); }
Dans ce scénario, le filtre trouvera tous les fichiers du répertoire actuel qui correspondent au modèle "sample*.java", y compris les fichiers comme "sample22b.java" et "sample-spiffy.java".
Cependant, si vous devez faire correspondre des chemins plus complexes avec des caractères génériques et des sous-répertoires, une approche plus explicite est requise. Une option consiste à parcourir la liste des sous-répertoires et à appliquer le filtre générique à chaque sous-répertoire séparément :
FileFilter dirFilter = new WildcardFileFilter("Test*"); File[] directories = dir.listFiles(dirFilter); for (int i = 0; i < directories.length; i++) { File dir = directories[i]; if (dir.isDirectory()) { FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter); } }
Cette approche garantit que les fichiers situés dans les sous-répertoires correspondant au modèle "Test*" sont également pris en compte dans la recherche. résultats.
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!