Java-program för att få den relativa sökvägen från två absoluta sökvägar

I det här exemplet lär vi oss att få den relativa sökvägen från två absoluta sökvägar i Java med hjälp av strängmetoder, URI-klass och paketet java.nio.file.

Exempel 1: Få en relativ sökväg från två absoluta sökvägar med URI-klass

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

Produktion

 Absolute Path1: C: Users Desktop Programiz Java Time.java Absolut Path2: C: Users Desktop Relativ sökväg: Programiz / Java / Time.java

I exemplet ovan har vi två absoluta vägar som heter absolutePath1 och absolutePath2. Vi har använt URI-klassen för att konvertera de absoluta banorna till den relativa sökvägen.

  • toURI () - konverterar Fileobjektet till en Uri
  • relativisera () - extraherar den relativa vägen genom att jämföra två absoluta vägar med varandra
  • getPath () - konverterar Uri till en sträng

Rekommenderad läsning :

  • Java-fil
  • Java URI-klass

Exempel 2: Få en relativ sökväg från två absoluta sökvägar med hjälp av strängmetoder

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

Produktion

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

I exemplet ovan har vi konverterat filvägarna till strängar. Lägg märke till uttrycket,

 absolutePath1.substring(absolutePath2.length())

Här substring()returnerar metoden den del av absolutePath1 som börjar från index lika med längden för absolutePath2. Det vill säga strängen som representeras av absolutePath2 tas bort från absolutePath1.

Om du vill lära dig mer om hur substring fungerar kan du besöka Java String substring ().

Exempel 3: Få en relativ sökväg från två absoluta sökvägar med paketet 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); ) )

Produktion

 Relative Path: ProgramizJavaTime.java

I ovanstående exempel har vi använt relativize()metoden för Pathgränssnittet för att få en relativ väg från två absoluta banor.

Rekommenderade avläsningar :

  • Java Paths-klass
  • Java Path Interface

Intressanta artiklar...