我需要根据文件的名称和扩展名对文件进行排序。我使用apache commons-io RegexFileFilter。文件名模式是这样的:“filename.xml.20130101200”或“filename.xml.20130101200.inprog”,其中数字是简单的时间戳。
FileFilter regexFilter = new RegexFileFilter( ".*\\d{12}|.*inprog" );
File[] suitableFiles = dir.listFiles( regexFilter );
如果包含这些文件的目录在我的主目录“/ home / user / files”中,那么在使用jboss运行时一切正常。但是当我将文件夹更改为“/ tmp / files /”时,过滤器将查找扩展名为“.inprog”的文件。当我在dir中记录文件数时,它显示正确的数量。我编写了简单的主程序进行测试,一切正常,即使文件在/ tmp / files中也是如此。 Jboss住在我的主文件夹中。
可能是什么问题?
答案 0 :(得分:0)
问题在于正则表达式。正则表达式字符串取自oracle db table。当我将其更改为“。* \ d {12} |。 inprog”时,删除一个反斜杠,它就开始工作了。另外“。 [0-9] {12} |。* inprog”正常工作