java.nio.file.path: несовместимое поведение с количеством имен?

1

Изучая поведение API NIO2, я рассмотрел это:

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
    System.out.println(Paths.get("c:\\").getNameCount()); печатает 0 на моей машине Windows ...
Теги:
nio

1 ответ

1
Лучший ответ

Хорошо, теперь я нашел правильное объяснение:

Экземпляр Path отражает базовую платформу. В ОС Solaris 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:\\\\" будет именем относительной папки в моем рабочем каталоге.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню