我正在使用以下递归方法列出给定目录中的所有文件和文件夹,但是它似乎列出了一些在 Windows 资源管理器中不可见的文件——即使我显示隐藏和系统保护的文件。我设置了扫描C:\\
目录的方法,在输出目录中的Boot
文件和BOOTSECT.BAK
. 好吧,实际上,我不认为它挂起 - 看起来它返回了最终数组,但还有更多文件并且没有抛出异常!
private static ArrayList<File> recursiveSearch(File dir){
File[] files = dir.listFiles();
ArrayList<File> result = new ArrayList<File>();
for(File file : files)
if(file.isDirectory()){
result.add(file);
ArrayList<File >tempList = recursiveSearch(file);
for(File temp : tempList)
result.add(temp);
}else{
result.add(file);
System.out.println(file.getPath());
}
return result;
}
我知道FileSystemView
但在这种情况下我不能使用它,因为我需要应用自定义文件名过滤器(我已从上面排除,但我已经测试过并且它不会影响方法输出)。任何帮助将不胜感激 - 在此先感谢