2017-08-03 4 views
0

J'ai besoin de vérifier si certains fichiers existent dans un répertoire en utilisant Java mais le nom du fichier a un motif. Par exemple, le nom du fichier est recap_data_03082017.txt et les chiffres à la fin changent constamment. Est-il possible d'effectuer une recherche en utilisant un caractère générique comme recap_data _ *. CsvRechercher un fichier dans un répertoire en utilisant des caractères génériques

+1

Qu'est-ce que vous avez essayé jusqu'à présent? –

+0

avez-vous essayé string.contains()? – isaace

+0

org.apache.commons.io.FilenameUtils.wildcardMatching (nomFichier, wildCard) mais c'est trop compliqué –

Répondre

0

Si vous utilisez Java 8, vous pouvez essayer ce qui suit,

try (Stream<Path> paths = Files.walk(Paths.get("/your/path/"), 1)) { 
      return paths 
        .filter(Files::isRegularFile) 
        .anyMatch(f -> { 
         final String fileName = f.getFileName().toString(); 
         return fileName.startsWith("ecap_data_") && fileName.endsWith(".csv"); 
        }); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+0

Cela fonctionne très bien mais je n'ai pas réussi à trouver comment renvoyer vrai ou faux en tant que déclaration de retour pour ma méthode parce que j'ai trouvé que c'est très syntaxe compliquée –

+0

Désolé, je viens de réaliser que vous voulez vérifier si le fichier avec le motif existe –

+0

C'est OK;) il a résolu 90% du problème pour moi :) Merci –