2013-03-05 66 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”正常工作