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

Java 基礎教程

Controllo di flusso Java

Array Java

Orientamento ad oggetti Java (I)

Orientamento ad oggetti Java (II)

Orientamento ad oggetti Java (III)

Java 異常處理

Elenco Java (List)

Queue Java (Coda)

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Programma Java per ottenere il percorso relativo da due percorsi assoluti

   Galleria di esempi Java

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

Esempio 1: Ottenere il 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 {
      //Due percorsi assoluti
      File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java");
      System.out.println("Percorso assoluto 1: " + absolutePath1);
      File absolutePath2 = new File("C:\\Users\\Desktop");
      System.out.println("Percorso assoluto 2: " + absolutePath2);
      //Convertire percorso assoluto in URI
      URI path1 = absolutePath1.toURI();
      URI path2 = absolutePath2.toURI();
      //Creare percorso relativo da due percorsi
      URI relativePath = path2.relativize(path1);
      //Convertire URI in stringa
      String path = relativePath.getPath();
      System.out.println("Percorso relativo: " + path);
    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Risultato di output

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

Nell'esempio sopra, abbiamo due percorsi assoluti chiamati absolutePath1 e absolutePath2. Abbiamo già convertito i percorsi assoluti in percorsi relativi utilizzando la classe URI.

  • toURI() Convertire un oggetto File inUri

  • relativize() - Estrarre il percorso relativo confrontando due percorsi assoluti

  • getPath() - Convertire l'URI in una stringa

Esempio 2: Ottenere il percorso relativo utilizzando il metodo String da due percorsi assoluti

import java.io.File;
class Main {
  public static void main(String[] args) {
    //Creare l'oggetto file
    File file1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java");
    File file2 = new File("C:\\Users\\Desktop");
    // Convertire l'oggetto file in una stringa
    String absolutePath1 = file1.toString();
    System.out.println("Percorso assoluto 1: " + absolutePath1);
    String absolutePath2 = file2.toString();
    System.out.println("Percorso assoluto 2: " + absolutePath2);
    // Ottenere il percorso relativo
    String relativePath = absolutePath1.substring(absolutePath2.length());
    System.out.println("Percorso assoluto: " + relativePath);
  }
}

Risultato di output

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

Nell'esempio sopra, convertiamo il percorso del file in una stringa. Nota l'espressione

absolutePath1.substring(absolutePath2.length())

In questo caso, il metodo substring() restituisce una parte di absolutePath1, iniziando dall'indice uguale alla lunghezza di absolutePath2. Questo significa che viene rimossa la stringa rappresentata da absolutePath2 da absolutePath1.

Per ulteriori informazioni su come funziona substring(), visitaJava String substring()

Esempio 3: Ottenere il percorso relativo utilizzando il pacchetto java.nio.file da due percorsi assoluti

import java.nio.file.Path;
import java.nio.file.Paths;
class Main {
  public static void main(String[] args) {
    //Creare l'oggetto file
    Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java");
    Path absolutePath2 = Paths.get("C:\\Users\\Desktop");
    //Convertire il percorso assoluto in percorso relativo
    Path relativePath = absolutePath2.relativize(absolutePath1);
    System.out.println("Percorso relativo: " + relativePath);
  }
}

Risultato di output

Percorso relativo: w3codebox\Java\Time.java

Nell'esempio sopra, abbiamo utilizzato il metodo relativize() dell'interfaccia Path per ottenere il percorso relativo da due percorsi assoluti.

Galleria di esempi Java