2017-08-03 88 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%的問題:)謝謝 –