Programma Java per ottenere il percorso relativo da due percorsi assoluti

In questo esempio, impareremo a ottenere il percorso relativo da due percorsi assoluti in Java utilizzando i metodi String, la classe URI e il pacchetto java.nio.file.

Esempio 1: ottieni un percorso relativo da due percorsi assoluti utilizzando la classe 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(); ) ) )

Produzione

 Percorso assoluto 1: C: Users Desktop Programiz Java Time.java Percorso assoluto 2: C: Users Desktop Percorso relativo: Programiz / Java / Time.java

Nell'esempio precedente, abbiamo due percorsi assoluti denominati absolutePath1 e absolutePath2. Abbiamo utilizzato la classe URI per convertire i percorsi assoluti nel percorso relativo.

  • toURI () - converte l' Fileoggetto in un Uri
  • relativize () : estrae il percorso relativo confrontando due percorsi assoluti l'uno con l'altro
  • getPath () : converte l' URI in una stringa

Lettura consigliata :

  • File Java
  • Classe URI Java

Esempio 2: ottieni un percorso relativo da due percorsi assoluti utilizzando i metodi String

 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); ) )

Produzione

 Percorso assoluto 1: C: Users Desktop Programiz Java Time.java Percorso assoluto 2: C: Users Desktop Percorso assoluto: Programiz Java Time.java

Nell'esempio precedente, abbiamo convertito i percorsi dei file in stringhe. Notare l'espressione,

 absolutePath1.substring(absolutePath2.length())

Qui, il substring()metodo restituisce la parte di absolutePath1 a partire dall'indice uguale alla lunghezza di absolutePath2. Ovvero, la stringa rappresentata da absolutePath2 viene rimossa da absolutePath1.

Per saperne di più su come funziona la sottostringa, visita la sottostringa Java String ().

Esempio 3: ottieni un percorso relativo da due percorsi assoluti utilizzando il pacchetto 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); ) )

Produzione

 Relative Path: ProgramizJavaTime.java

Nell'esempio precedente, abbiamo utilizzato il relativize()metodo Pathdell'interfaccia per ottenere un percorso relativo da due percorsi assoluti.

Letture consigliate :

  • Classe percorsi Java
  • Java Path Interface

Articoli interessanti...