是否可以通过引用相对路径的Path对象调用getRoot()获得正确的根目录?

时间:2018-09-02 17:34:32

标签: java path nio

在方法documentation中,我们具有:“将该路径的根部分作为Path对象返回,如果该路径没有根部分,则返回null”

它如何在绝对路径和相对路径之间没有区别,让我认为它是可行的,但是我不确定。

P / D我知道这可以通过执行几行代码来解决,但仍然认为这是一个相关的问题,特别是如果您正在学习Java认证。

1 个答案:

答案 0 :(得分:1)

否,这是不可能的,因为相对路径没有根组件。这是一个示例:

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->根目录:null

     

绝对路径:/home/denis/workspace/ocp/myFile.txt->根目录:/