0

我需要根据文件的名称和扩展名对文件进行排序。我为此使用 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”的文件。当我记录目录中的文件数时,它显示正确的数量。我编写了简单的主程序进行测试,一切正常,即使文件在 /tmp/files 中。Jboss 位于我的主文件夹中。

可能是什么问题呢?

4

1 回答 1

0

问题出在正则表达式中。正则表达式字符串取自 oracle 数据库表。当我把它改成“.*\d{12}| .inprog”,去掉一个反斜杠,它就开始工作了。". [0-9]{12}|.*inprog" 也可以正常工作

于 2013-03-06T15:29:22.350 回答