English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Java flow control

Java array

Java object-oriented (I)

Java object-oriented (II)

Java object-oriented (III)

Manejo de excepciones en Java

Java List

Java Queue (queue)

Java Map collection

Java Set collection

Java input/output (I/O)

Java Reader/Writer

Other Java topics

Java program to get relative path from two absolute paths

   Java Catálogo de ejemplos

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.

Ejemplo1Use URI class to get relative path from two absolute paths

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

Ejemplo2Obtener la ruta relativa de dos rutas absolutas utilizando el método String

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().

Ejemplo3Obtener la ruta relativa de dos rutas absolutas utilizando el paquete java.nio.file

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.

Java Catálogo de ejemplos