2010-02-24 1 views
1

'가져 오기'라는 디렉터리가 있고 모든 파일과 해당 날짜 (파일 이름 기준)를 가져 오려고합니다. 디렉토리의 샘플 내용은 이것이다 :파일 목록 가져 오기

  • input_02202010.xls
  • input_02212010.xls
  • input_02222010.xls

내가 파일의 경로를 포함하는지도를 갖고 싶습니다 Date 변수.

Groovy가이 문제를 어떻게 해결할 수 있는지 보여 줄 수 있습니까?

답변

3

Java에서와 마찬가지로 파일 이름을 얻으려면 new File("/foo/bar/import").list()을 사용하십시오. 그런 다음 문자열에서 파일 객체를 만들고 lastModified()에서 마지막 수정 날짜를 확인합니다.

편집 : 그루비는 java.io.File의에 eachFile() 방법을 추가, 우리는 사용

파일 이름에서 날짜를 추출하려면 ... 그것은 더 끝내 조금 만들기 위해 그것을 사용할 수 있습니다

Date d = new java.text.SimpleDateFormat("MMddyyyy").parse(filename.substring(6,14)) 

는 (중복 불구하고, 키와 파일 이름과 값으로 날짜를 사용하여) 맵에 모든 것을 만들려면 : 답장을

def df = new java.text.SimpleDateFormat("MMddyyyy") 
def results = [:] 
new File("/foo/bar/import").eachFile() { file -> 
    results.put(file.getName(), df.parse(file.getName().substring(6,14))) 
} 

results 
+0

감사합니다. Groovy를 사용하여 파일 이름에서 날짜 문자열을 추출하는 방법을 알고 싶습니다. - Regex : http://groovy.codehaus.org/Regular+Expressions 예 : input_02202010.xls -> 02202010 – firnnauriel

+0

def s = "input_02222010.xls" def s2 = s = ~/input_ ([\d]+)\.xls/ "02222010"== s2 [0] [1] –