Java-program for å få den relative banen fra to absolutte baner

I dette eksemplet vil vi lære å få den relative banen fra to absolutte baner i Java ved hjelp av String-metoder, URI-klasse og java.nio.file-pakken.

Eksempel 1: Få en relativ bane fra to absolutte baner ved bruk av URI-klasse

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

Produksjon

 Absolut Path1: C: Users Desktop Programiz Java Time.java Absolute Path2: C: Users Desktop Relative Path: Programiz / Java / Time.java

I eksemplet ovenfor har vi to absolutte baner kalt absolutePath1 og absolutePath2. Vi har brukt URI-klassen til å konvertere de absolutte banene til den relative banen.

  • toURI () - konverterer Fileobjektet til en Uri
  • relativisere () - trekker ut den relative banen ved å sammenligne to absolutte baner med hverandre
  • getPath () - konverterer Uri til en streng

Anbefalt lesing :

  • Java-fil
  • Java URI-klasse

Eksempel 2: Få en relativ bane fra to absolutte baner ved hjelp av strengmetoder

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

Produksjon

 Absolute Path1: C: Users Desktop Programiz Java Time.java Absolute Path2: C: Users Desktop Absolute Path: Programiz Java Time.java

I eksemplet ovenfor har vi konvertert filbanene til strenger. Legg merke til uttrykket,

 absolutePath1.substring(absolutePath2.length())

Her substring()returnerer metoden den delen av absolutePath1 startende fra indeks lik lengden på absolutePath2. Det vil si at strengen representert av absolutePath2 blir fjernet fra absolutePath1.

Hvis du vil lære mer om hvordan substring fungerer, kan du gå til Java String substring ().

Eksempel 3: Få en relativ bane fra to absolutte baner ved hjelp av pakken 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); ) )

Produksjon

 Relative Path: ProgramizJavaTime.java

I eksemplet ovenfor har vi brukt relativize()metoden for Pathgrensesnittet for å få en relativ bane fra to absolutte baner.

Anbefalte målinger :

  • Java Paths-klasse
  • Java Path Interface

Interessante artikler...