2016-09-22 7 views
0

내가 같은 몇 가지 패턴에 따라 파일을 필터링하고 싶은 이름 패턴에 따라 파일 가져 오기 :스칼라 -

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

또는 임의의 이름 (. 패턴을 * * -이 공간 때문에 내 텍스트를 부서졌다있다) .

모든 필터는 데이터베이스 테이블에서 제공되며 동적입니다. 내가 사용을 방지하기 위해 노력하고있어

는 SO와 같은 CP 또는 MV에서 명령. 위와 같은 패턴을 사용하여 파일을 필터링 할 수 있습니까?

val stream = Files.newDirectoryStream(dir, pattern) 

확인 :

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

어떤 오류가 발생 했습니까? 어쩌면 정규 표현식이 정규 표현식이 아니기 때문에 '팀 _ * .txt'는 올바른 정규 표현식이 아니며 '팀 _. * \. 텍스트'입니다. – Arek

답변