我有一个函数,可以递归打印目录中所有文件的名称。问题在于,我的代码非常慢,因为它必须在每次迭代时访问远程网络设备。
我的计划是首先递归加载目录中的所有文件,然后使用正则表达式筛选出不想要的所有文件。是否有更好的解决方案?
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());
}
}
}
这只是一个测试。以后我不会再像这样使用代码;相反,我会将每个与高级正则表达式匹配的文件的路径和修改日期添加到数组中。