2016-09-22 30 views
0

我想基於像一些模式的文件過濾文件:斯卡拉 - 獲取基於名稱模式

- Team_*.txt (e.g.: Team_Orlando.txt); 
- Name.*.City.txt (e.g.: Name.Robert.California.txt); 

或者任何名稱(模式* - 它的空間,因爲被打破我的文字) 。

所有的過濾器都來自數據庫表,它們是動態的。

我試圖避免使用命令,如cpmv。是否有可能使用上述模式過濾文件?

這裏是我做過嘗試,但有一個正則表達式錯誤:

def getFiles(dir:File, filter:String) = {           
    (dir.isDirectory, dir.exists) match {            
     case (true, true) =>                
     dir.listFiles.filter(f => f.getName.matches(filter))       
     case _ =>                  
     Array[File]()                 
    }                     
    }                     
+2

你得到了什麼錯誤?也許你的正則表達式不是正則表達式,即「Team _ *。txt」不是一個有效的正則表達式,「Team _。* \。text」是。 – Arek

回答