2013-03-05 3 views
0

이름과 확장명을 기반으로 파일을 정렬해야합니다. 내가 사용하는 아파치 평민 - io RegexFileFilter. 파일 이름 패턴은 "filename.xml.20130101200"또는 "filename.xml.20130101200.inprog"이며, 여기서 숫자는 간단한 타임 스탬프입니다. RegexFileFilter는 jboss 7에서 실행될 때 다르게 동작합니다.

FileFilter regexFilter = new RegexFileFilter(".*\\d{12}|.*inprog"); 
File[] suitableFiles = dir.listFiles(regexFilter); 

파일 만 포함되어이 디렉토리 내 홈 디렉토리에있는 경우

는 "/ 가정/사용자/파일"을 선택 후 모든 것이 잘 작동 제이 보스와 함께 실행하는 경우. 그러나 폴더를 "/ tmp/files /"로 변경하면 필터는 확장자가 ".inprog"인 파일을 찾습니다. dir에 파일 수를 기록 할 때 정확한 양이 표시됩니다. 필자는 테스트를 위해 간단한 메인 프로그램을 작성했는데 파일이/tmp/파일에 있더라도 모든 것이 잘 작동합니다. Jboss는 내 홈 폴더에 있습니다.

무엇이 문제 일 수 있습니까?

답변

0

문제가 정규식에 있습니다. 정규식 문자열은 oracle db 테이블에서 가져온 것입니다. ". * \ d {12} |. inprog"로 변경하고 백 슬래시 하나를 제거하면 작업이 시작됩니다. 또한 " [0-9] {12} |. * inprog"는 올바르게 작동합니다.

관련 문제