Maison >Java >javaDidacticiel >Comment rechercher efficacement des fichiers à l'aide de modèles génériques en Java ?

Comment rechercher efficacement des fichiers à l'aide de modèles génériques en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 10:50:10434parcourir

How to Efficiently Find Files Using Wildcard Patterns in Java?

Recherche de fichiers avec des chaînes génériques en Java

La recherche de fichiers correspondant à un modèle de caractère générique spécifique est une tâche courante en Java. Pour répondre à ce besoin, Apache commons-io fournit à la classe FileUtils des méthodes telles que listFiles et iterateFiles.

Supposons que vous ayez un modèle générique comme celui-ci :

../Test?/sample*.txt

Pour répertorier les fichiers correspondants à l'aide de FileUtils :

File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("sample*.java");
File[] files = dir.listFiles(fileFilter);

for (File file : files) {
    System.out.println(file);
}

Ce code parcourt les fichiers du répertoire actuel qui correspondent au caractère générique spécifié. Cependant, pour gérer les répertoires imbriqués (par exemple les dossiers TestX), vous pouvez d'abord parcourir les répertoires :

File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java"));

for (File dir : dirs) {
    if (dir.isDirectory()) {
        File[] files = dir.listFiles(new WildcardFileFilter("sample*.java"));
    }
}

Bien que cette solution soit efficace, elle peut ne pas être aussi efficace que souhaité. Pensez à utiliser un RegexFileFilter pour des critères de correspondance plus flexibles et plus complexes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn