这段代码在我的开发机器上运行正常(使用Netbeans IDE安装在VirtualBox jre 8上的Windows 7),但在另一台机器(Windows 7 jre 8)上始终返回true。 它应该只找到名为“town_house.html”的文件,而不是总是为文件夹中的每个文件返回true。从提示中运行jar文件我没有任何异常。 也许这只是一个微不足道的错误我通常用C / C ++编程......任何想法?
for(File f : files)
{
if(f.toString().contains("_") &&
f.toString().contains(".html")){
System.out.print("Processing file: " + f.getName()+ "\n");
String[] fileSplit = f.getName().split("_");
towns.add(fileSplit[0]);
}
}
提前致谢
答案 0 :(得分:3)
您正在检查toString()
而不是getName()
- 目录路径可能包含下划线。
试试这个(注意简化测试):
for(File f : files) {
if (f.getName().matches(".*_.*\\.html")) {
System.out.print("Processing file: " + f.getName()+ "\n");
String[] fileSplit = f.getName().split("_");
towns.add(fileSplit[0]);
}
}