在了解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机器上。
答案 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:\\\\"
将是我工作目录中相对文件夹的名称。