为什么Files.walkFileTree无法报告无法访问已装入的驱动器

时间:2018-03-01 10:55:04

标签: java nio filevisitor

我的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:\将不会被处理,也没有任何迹象表明问题被记录。

0 个答案:

没有答案