Java中的路径 relativize() 方法及示例
Java.nio.file.Path的relativize(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)