Programa Java para obtener la ruta relativa de dos rutas absolutas

En este ejemplo, aprenderemos a obtener la ruta relativa de dos rutas absolutas en Java usando métodos String, clase URI y paquete java.nio.file.

Ejemplo 1: obtener una ruta relativa de dos rutas absolutas usando la clase URI

 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\Programiz\Java\Time.java"); System.out.println("Absolute Path1: " + absolutePath1); File absolutePath2 = new File("C:\Users\Desktop"); System.out.println("Absolute Path2: " + absolutePath2); // convert the absolute path to URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); // create a relative path from the two paths URI relativePath = path2.relativize(path1); // convert the URI to string String path = relativePath.getPath(); System.out.println("Relative Path: " + path); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Salida

 Ruta absoluta1: C: Users Desktop Programiz Java Time.java Ruta absoluta2: C: Users Desktop Ruta relativa: Programiz / Java / Time.java

En el ejemplo anterior, tenemos dos rutas absolutas denominadas ruta absoluta1 y ruta absoluta2. Hemos utilizado la clase URI para convertir las rutas absolutas en la ruta relativa.

  • toURI () - convierte el Fileobjeto en un Uri
  • relativize () : extrae la ruta relativa comparando dos rutas absolutas entre sí
  • getPath () : convierte el Uri en una cadena

Lectura recomendada :

  • Archivo Java
  • Clase de URI de Java

Ejemplo 2: obtener una ruta relativa de dos rutas absolutas utilizando métodos de cadena

 import java.io.File; class Main ( public static void main(String() args) ( // Create file objects File file1 = new File("C:\Users\Desktop\Programiz\Java\Time.java"); File file2 = new File("C:\Users\Desktop"); // convert file objects to string String absolutePath1 = file1.toString(); System.out.println("Absolute Path1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("Absolute Path2: " + absolutePath2); // get the relative path String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("Absolute Path: " + relativePath); ) )

Salida

 Ruta absoluta1: C: Users Desktop Programiz Java Time.java Ruta absoluta2: C: Users Desktop Ruta absoluta: Programiz Java Time.java

En el ejemplo anterior, hemos convertido las rutas de los archivos en cadenas. Note la expresión,

 absolutePath1.substring(absolutePath2.length())

Aquí, el substring()método devuelve la parte de absolutePath1 comenzando desde el índice igual a la longitud de absolutePath2. Es decir, la cadena representada por absolutePath2 se elimina de absolutePath1.

Para obtener más información sobre cómo funciona la subcadena, visite Java String substring ().

Ejemplo 3: Obtener una ruta relativa de dos rutas absolutas usando el paquete java.nio.file

 import java.nio.file.Path; import java.nio.file.Paths; class Main ( public static void main(String() args) ( // Create file objects Path absolutePath1 = Paths.get("C:\Users\Desktop\Programiz\Java\Time.java"); Path absolutePath2 = Paths.get("C:\Users\Desktop"); // convert the absolute path to relative path Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Relative Path: " + relativePath); ) )

Salida

 Relative Path: ProgramizJavaTime.java

En el ejemplo anterior, hemos utilizado el relativize()método de la Pathinterfaz para obtener una ruta relativa de dos rutas absolutas.

Lecturas recomendadas :

  • Clase Java Paths
  • Interfaz de ruta de Java

Articulos interesantes...