Можно ли получить правильный корень, вызвав getRoot () из объекта Path, ссылающегося на относительный путь? - PullRequest
0 голосов
/ 02 сентября 2018

Из метода документация мы имеем: «Возвращает корневой компонент этого пути в виде объекта Path, или ноль, если у этого пути нет корневого компонента»

То, что он не делает различий между абсолютным и относительным путем, заставляет меня думать, что это работает, но я не совсем уверен в этом.

P / D Я знаю, что это можно выяснить, выполнив несколько строк кода, но все же думаю, что это актуальный вопрос, особенно если вы изучаете сертификацию Java.

1 Ответ

0 голосов
/ 12 сентября 2018

Нет, это невозможно, поскольку относительный путь не имеет корневого компонента. Вот пример:

import java.nio.file.*;

public class PathChecker {

public static void main (String[] args) {
    try {
        Path relative = Paths.get("myFile.txt");
        Path absolute = Paths.get("//home//denis//workspace//ocp//myFile.txt");
        System.out.println("Relative path: " + relative + " -> root: " + relative.getRoot());
        System.out.println("Absolute path: " + absolute + " -> root: " + absolute.getRoot());
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

Результат выполнения этого («myFile.txt» находится в текущей папке программы):

Относительный путь: myFile.txt -> root: null

Абсолютный путь: /home/denis/workspace/ocp/myFile.txt -> root: /

...