Files.isReadable&网络分辨率

时间:2014-01-29 18:00:56

标签: java windows nio

考虑操作系统Windows 7企业版(SP 1)32位和JDK 1.7.0_25,

运行以下Groovy代码println Files.isReadable(Paths.get("foo.txt"))会打印 true

该文件驻留在本地驱动器上(与Groovy脚本位于同一文件夹中)

但是,一旦我拔下网线并重新运行,就会打印 false

任何人都可以了解它吗?

2 个答案:

答案 0 :(得分:0)

如果文件位于网络共享上(可能是Samba,但特别是DFS映射到Linux上的网络驱动器/ Linux上的挂载点),那么拉动网络电缆确实会导致文件由于无法访问而无法读取持有它的服务器。

如果文件不在(映射的)网络驱动器上,则其他内容正在播放。

答案 1 :(得分:0)

你可以试试这个:

Path p = Paths.get("foo.txt"));
System.out.println(p.toString());

然后看看它打印出来的实际路径。也许这不是本地的?