2017-08-03 48 views
0

我需要检查某个文件是否存在于使用Java的目录中,但文件名是否有模式。例如文件名是recap_data_03082017.txt,最后的数字总是在变化。有没有一种方法来执行搜索使用像recap_data通配符_ *。以csv使用通配符搜索目录中的文件

+1

那你试试这么远吗? –

+0

你试过string.contains()吗? – isaace

+0

org.apache.commons.io.FilenameUtils.wildcardMatching(fileName,wildCard)但它太复杂了 –

回答

0

如果您使用的是Java 8,你可以尝试以下方法,

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

这工作正常,但我无法管理如何返回true或false作为我的方法的返回语句,因为我发现它是一个非常复杂的语法 –

+0

对不起刚刚意识到你想检查是否存在带有模式的文件 –

+0

没问题;)它为我解决了90%的问题:)谢谢 –