English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
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()。
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.