我的Java代码遍历计算机的根目录以创建文件夹树(用作Web应用程序的json)
for (Path path : FileSystems.getDefault().getRootDirectories())
{
MainWindow.logger.severe("Walking:"+path.getRoot());
if(Files.isDirectory(path))
{
constructRootData(path);
visitFolder = new VisitFolder(keys, depth);
Files.walkFileTree(path, visitFolder);
}
}
日志输出
01/03/2018 10.40.42:GMT:CreateFolderTree:start:SEVERE: Walking:C:\
01/03/2018 10.40.42:GMT:CreateFolderTree:start:SEVERE: Walking:D:\
01/03/2018 10.40.42:GMT:CreateFolderTree:start:SEVERE: Walking:E:\
01/03/2018 10.40.42:GMT:CreateFolderTree:start:SEVERE: Walking:Y:\
01/03/2018 10.41.03:GMT:CreateFolderTree:start:SEVERE: Walking:Z:\
我注意到虽然它只穿越1的深度,但它开始花费的时间相当长,我意识到问题是Y:\被映射到实际上与网络断开连接的远程NAS,并且需要20秒才能完成意识到这一点。
1>有什么我可以做的来确定Y:\无法更快地访问。
2 - ;为什么Files.walkFileTree()实际上没有抛出异常,它显然没有,因为如果它确实Z:\将不会被处理,也没有任何迹象表明问题被记录。