2013-03-05 70 views
0

我需要根據文件名和擴展名對文件進行排序。我使用apache commons-io RegexFileFilter。文件名模式是這樣的:「filename.xml.20130101200」或「filename.xml.20130101200.inprog」,其中數字是簡單的時間戳。在jboss 7中運行時,RegexFileFilter的行爲有所不同

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

如果該目錄包含這些文件是在我的主目錄「/ home/user中/文件」與JBoss運行時,則一切正常。但是,當我將文件夾更改爲「/ tmp/files /」時,過濾器將查找帶「.inprog」擴展名的文件。當我記錄在目錄中的文件數量,它顯示正確的金額。我編寫了簡單的主程序進行測試,並且在那裏一切正常,即使文件在/ tmp /文件中。 Jboss居住在我的家庭文件夾中。

可能是什麼問題?

回答

0

問題在於正則表達式。正則表達式字符串取自oracle數據庫表。當我將其改爲「。* \ d {12} |。inprog」時,刪除一個反斜槓,它開始工作。還有「。 [0-9] {12} |。* inprog」正常工作