最佳答案
我有这个函数,它递归地打印一个目录中所有文件的名称。问题是我的代码非常慢,因为每次迭代都要访问远程网络设备。
我的计划是首先递归地加载目录中的所有文件,然后用正则表达式遍历所有文件,以过滤掉所有我不想要的文件。有人有更好的建议吗?
public static printFnames(String sDir) {
File[] faFiles = new File(sDir).listFiles();
for (File file : faFiles) {
if (file.getName().matches("^(.*?)")) {
System.out.println(file.getAbsolutePath());
}
if (file.isDirectory()) {
printFnames(file.getAbsolutePath());
}
}
}
这只是稍后的一个测试,我不会像这样使用代码,相反,我会添加每个文件的路径和修改日期,匹配一个高级正则表达式到一个数组。