java nio路径无法处理windows网络路径

时间:2014-02-27 15:06:49

标签: java nio

为什么会这样?

def path=java.nio.file.Paths.get("c:/kittuhomestore/Csmart/files/companies");
path.getNameCount();
4

def path=java.nio.file.Paths.get("//kittuhomestore/Csmart/files/companies");
path.getNameCount();
2

后者是一个Windows共享网络驱动器。

1 个答案:

答案 0 :(得分:2)

Path path = java.nio.file.Paths.get("c:/kittuhomestore/Csmart/files/companies");
System.err.println(path.getRoot());

输出:

c:\

在第一种情况下,路径的RootC:\,因此其余部分为kittuhomestoreCsmartfiles和{{1因此 4 组件。


companies

输出:

Path path = java.nio.file.Paths.get("//kittuhomestore/Csmart/files/companies");
System.err.println(path.getRoot());

在第二种情况下,路径的\\kittuhomestore\Csmart\ Root,因此其余部分为\\kittuhomestore\Csmart\files,因此 2 组件。

这是因为UNC path的格式为

companies

其中\\server\share\file_path 是路径的根。