📜  Java中的路径 relativize() 方法及示例

📅  最后修改于: 2022-05-13 01:55:16.947000             🧑  作者: Mango

Java中的路径 relativize() 方法及示例

Java.nio.file.Pathrelativize(Path other)方法用于创建该路径与给定路径之间的相对路径作为参数。
相对化是分辨率的倒数。此方法创建一个相对路径,当针对此路径对象解析时,会生成一个路径,帮助我们定位与给定路径相同的文件。

例如,如果这个路径是“/dir1/dir2”并且作为参数的给定路径是“/dir1/dir2/dir3/file1”,那么这个方法将构造一个相对路径“dir3/file1”。如果该路径和给定路径没有根组件,则可以构造相对路径。

如果任何路径具有根组件,则无法构造相对路径。当两个路径都有根组件时,是否可以构造相对路径取决于实现。如果此路径和给定路径相等,则返回空路径。

句法:

Path relativize(Path other)

参数:此方法接受一个参数,其他参数是相对于该路径的路径。

返回值:此方法返回生成的相对路径,如果两条路径相等,则返回空路径。

异常:如果 other 不是可以针对此路径进行相对化的路径,则此方法将引发 IllegalArgumentException。

下面的程序说明了 relativize() 方法:
方案一:

// Java program to demonstrate
// java.nio.file.Path.relativize() method
  
import java.nio.file.Path;
import java.nio.file.Paths;
public class GFG {
    public static void main(String[] args)
    {
  
        // create objects of Path
        Path path
            = Paths.get("D:\\eclipse\\p2"
                        + "\\org\\eclipse");
        Path passedPath
            = Paths.get("D:\\eclipse\\p2"
                        + "\\org\\eclipse\\equinox\\p2\\core"
                        + "\\cache\\binary");
  
        // print paths
        System.out.println("This Path:"
                           + path);
        System.out.println("Given Path:"
                           + passedPath);
  
        // call relativize() to create
        // a relative path
        Path relativize
            = path.relativize(passedPath);
  
        // print result
        System.out.println("Relative Path: "
                           + relativize);
    }
}
输出:

方案二:

// Java program to demonstrate
// java.nio.file.Path.relativize() method
  
import java.nio.file.Path;
import java.nio.file.Paths;
public class GFG {
    public static void main(String[] args)
    {
  
        // create objects of Path
        Path path
            = Paths.get("\\nEclipseWork");
        Path passedPath
            = Paths.get("\\nEclipseWork\\GFG"
                        + "\\bin\\defaultpackage");
  
        // print paths
        System.out.println("This Path:"
                           + path);
        System.out.println("Given Path:"
                           + passedPath);
  
        // call relativize()
        // to create a relative path
        Path relativize
            = path.relativize(passedPath);
  
        // print result
        System.out.println("Relative Path: "
                           + relativize);
    }
}
输出:

参考资料: https: Java Java)