首页 > 解决方案 > 是否可以通过从引用相对路径的 Path 对象调用 getRoot() 来获得正确的根?

问题描述

从我们的方法文档中:“将此路径的根组件作为 Path 对象返回,如果此路径没有根组件,则返回 null”

它如何不区分绝对路径和相对路径,让我认为它有效,但我并不完全确定。

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

标签: javapathnio

解决方案


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

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:/


推荐阅读