在了解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机器上。
好的,现在我找到了正确的解释:
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:\\\\"
将是我的工作目录中的相对文件夹的名称。