我有一个“moreinfo
”目录,其中包含一些html文件和其他文件夹。我正在搜索moreinfo
目录中的文件(而不是moreinfo
中的子目录)与toolId*
匹配。文件的名称与toolId相同,
以下是我编写代码的代码段,如果我的toolId = delegatedAccess
列表根据宽卡过滤器(delegatedAccess.html & delegatedAccess.shopping.html
)返回2个文件(toolId*
)
他们是一个更好的方法来编写检查直到最后一个发生期间的正则表达式并返回与我的toolId完全匹配的文件吗?
infoDir =/Users/moreinfo
private String getMoreInfoUrl(File infoDir, String toolId) {
String moreInfoUrl = null;
try {
Collection<File> files = FileUtils.listFiles(infoDir, new WildcardFileFilter(toolId+"*"), null);
if (files.isEmpty()==false) {
File mFile = files.iterator().next();
moreInfoUrl = libraryPath + mFile.getName(); // toolId;
}
} catch (Exception e) {
M_log.info("unable to read moreinfo" + e.getMessage());
}
return moreInfoUrl;
}
答案 0 :(得分:0)
这就是我最后所做的所有好评。我做了字符串操作来解决我的问题。正如Regex不是正确的解决方案。
private String getMoreInfoUrl(File infoDir, String toolId) {
String moreInfoUrl = null;
try {
Collection<File> files = FileUtils.listFiles(infoDir, new WildcardFileFilter(toolId+"*"), null);
if (files.isEmpty()==false) {
for (File mFile : files) {
int lastIndexOfPeriod = mFile.getName().lastIndexOf('.');
String fNameWithOutExtension = mFile.getName().substring(0,lastIndexOfPeriod);
if(fNameWithOutExtension.equals(toolId)) {
moreInfoUrl = libraryPath + mFile.getName();
break;
}
}
}
} catch (Exception e) {
M_log.info("unable to read moreinfo" + e.getMessage());
}
return moreInfoUrl;
}