java.nio.file.path:名称计数不一致的行为?

时间:2014-08-14 09:02:01

标签: java linux windows unix nio

在了解NIO2 API的行为时,我考虑过这个问题:

Path unix = Paths.get("/");
Path windows = Paths.get("c:\\");
System.out.println(unix.getNameCount());
System.out.println(windows.getNameCount());

...给出输出

0
1

为什么?我希望同样的结果应该是0,因为没有名称而只有一个根。当我添加文件夹

Path unix = Paths.get("/etc");
Path windows = Paths.get("c:\\etc");
System.out.println(unix.getNameCount());
System.out.println(windows.getNameCount());

...然后我得到了

1
1

对于Windows部分来说,这会让人感到困惑吗?

编辑:我自己在Linux机器上。

1 个答案:

答案 0 :(得分:2)

好的,现在我找到了正确的解释:

  

Path实例反映了底层平台。在Solaris OS中,Path使用Solaris语法(/ home / joe / foo),在Microsoft Windows中,Path使用Windows语法(C:\ home \ joe \ foo)。路径不是系统独立的。

从这里开始:http://docs.oracle.com/javase/tutorial/essential/io/pathClass.html

这意味着在我的Linux机器上,路径"c:\\\\"将是我工作目录中相对文件夹的名称。