English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In this example, we will learn to use String method, URI class, and java.nio.file package to get a relative path from two absolute paths in Java.
import java.io.File; import java.net.URI; class Main {}} public static void main(String[] args) { try { //Two absolute paths File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); System.out.println("Ruta absoluta"1: " + absolutePath1); File absolutePath2 = new File("C:\\Users\\Desktop"); System.out.println("Ruta absoluta"2: " + absolutePath2); //Convert absolute path to URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); //Create a relative path from two paths URI relativePath = path2.relativize(path)1); //Convertir URI a cadena String path = relativePath.getPath(); System.out.println("Ruta relativa: " + path); } catch (Exception e) { e.getStackTrace(); } } }
Resultado de salida
Ruta absoluta1: C:\Users\Desktop\w3codebox\Java\Time.java Ruta absoluta2: C:\Users\Desktop Ruta relativa: w3codebox/Java/Time.java
En el ejemplo anterior, tenemos dos archivos llamados absolutePath1 y absolutePath2 La ruta absoluta. Ya hemos convertido la ruta absoluta a relativa utilizando la clase URI.
toURI() - Convertir el objeto File aUri
relativize() - Extraer la ruta relativa comparando dos rutas absolutas
getPath() - Convertir URI a cadena
import java.io.File; class Main {}} public static void main(String[] args) { //Crear objeto de archivo File file1 = new File("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); File file2 = new File("C:\\Users\\Desktop"); // Convertir el objeto archivo a una cadena String absolutePath1 = file1.toString(); System.out.println("Ruta absoluta"1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("Ruta absoluta"2: " + absolutePath2); //Obtener la ruta relativa String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("Ruta absoluta: " + relativePath); } }
Resultado de salida
Ruta absoluta1: C:\Users\Desktop\w3codebox\Java\Time.java Ruta absoluta2: C:\Users\Desktop Ruta absoluta: \w3codebox\Java\Time.java
En el ejemplo anterior, convertimos la ruta del archivo a una cadena. Nota la expresión
absolutePath1.substring(absolutePath2.length())
Aquí, el método substring () devuelve absolutePath1una parte de, desde el índice igual a absolutePath2del inicio de su longitud. Es decir, desde absolutePath1eliminar absolutePath2 La cadena representada.
Para obtener más información sobre cómo funciona la subcadena, visiteJava String substring().
import java.nio.file.Path; import java.nio.file.Paths; class Main {}} public static void main(String[] args) { //Crear objeto de archivo Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\Java\Time.java"); Path absolutePath2 = Paths.get("C:\\Users\\Desktop"); //Convertir la ruta absoluta a la relativa Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Ruta relativa: " + relativePath); } }
Resultado de salida
Ruta relativa: w3codebox\Java\Time.java
En el ejemplo anterior, utilizamos el método relativize() de la interfaz Path para obtener la ruta relativa de dos rutas absolutas.