Maison > Java > javaDidacticiel > Comment puis-je trouver efficacement des fichiers correspondant à des modèles génériques en Java ?

Comment puis-je trouver efficacement des fichiers correspondant à des modèles génériques en Java ?

Barbara Streisand
Libérer: 2024-12-05 12:32:10
original
798 Les gens l'ont consulté

How Can I Efficiently Find Files Matching Wildcard Patterns in Java?

Recherche de fichiers avec des modèles de caractères génériques en Java

Identifier les fichiers correspondant à un modèle de caractères génériques spécifique peut être intimidant en Java. Pour relever ce défi, envisagez les approches suivantes :

Utilisation de org.apache.commons.io.filefilter.WildcardFileFilter

  • Créer une instance FileFilter en utilisant WildcardFileFilter :

    FileFilter fileFilter = new WildcardFileFilter("sample*.txt");
    Copier après la connexion
  • Appliquer le filtre à un répertoire pour lister les fichiers correspondants :

    File dir = new File(".");
    File[] files = dir.listFiles(fileFilter);
    Copier après la connexion

Gestion des chemins relatifs

Pour tenir compte des chemins relatifs dans répertoires :

  • Parcourir les sous-répertoires :

    FileFilter dirFilter = new WildcardFileFilter("Test*");
    File[] subdirs = new File(".").listFiles(dirFilter);
    for (File subdir : subdirs) {
      if (subdir.isDirectory()) {
        File[] files = subdir.listFiles(fileFilter);
      }
    }
    Copier après la connexion
  • Utiliser la récursion :

    File current = ...; // start at any directory
    File[] files = new ArrayList<>();
    processFiles(files, current, fileFilter);
    
    private void processFiles(List<File> files, File dir, FileFilter filter) {
      File[] subdirs = dir.listFiles(dirFilter);
      for (File subdir : subdirs) {
        if (subdir.isDirectory()) {
          processFiles(files, subdir, filter);
        }
        else if (filter.accept(subdir)) {
          files.add(subdir);
        }
      }
    }
    Copier après la connexion

Alternative Approches

  • RegexFileFilter : Ce filtre utilise des expressions régulières pour correspondre aux modèles de fichiers, mais peut être plus complexe à utiliser.
  • Implémentation personnalisée : Créez une classe personnalisée implémentant l'interface FileFilter pour gérer la correspondance des caractères génériques.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal