Java-program til at få den relative sti fra to absolutte stier

I dette eksempel lærer vi at få den relative sti fra to absolutte stier i Java ved hjælp af String-metoder, URI-klasse og java.nio.file-pakke.

Eksempel 1: Få en relativ sti fra to absolutte stier ved hjælp af 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(); ) ) )

Produktion

 Absolut sti1: C: Brugere Desktop Programiz Java Time.java Absolut sti2: C: Brugere Desktop Relativ sti: Programiz / Java / Time.java

I ovenstående eksempel har vi to absolutte stier med navnet absolutePath1 og absolutePath2. Vi har brugt URI-klassen til at konvertere de absolutte stier til den relative sti.

  • toURI () - konverterer Fileobjektet til en Uri
  • relativisere () - udtrækker den relative sti ved at sammenligne to absolutte stier med hinanden
  • getPath () - konverterer Uri til en streng

Anbefalet læsning :

  • Java-fil
  • Java URI-klasse

Eksempel 2: Få en relativ sti fra to absolutte stier ved hjælp af 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); ) )

Produktion

 Absolut sti1: C: Brugere Desktop Programiz Java Time.java Absolut sti2: C: Brugere Desktop Absolut sti: Programiz Java Time.java

I ovenstående eksempel har vi konverteret filstierne til strenge. Bemærk udtrykket,

 absolutePath1.substring(absolutePath2.length())

Her substring()returnerer metoden den del af absolutePath1 startende fra indeks svarende til længden af ​​absolutePath2. Det vil sige, at strengen repræsenteret af absolutePath2 fjernes fra absolutePath1.

For at lære mere om, hvordan substring fungerer, skal du besøge Java String substring ().

Eksempel 3: Få en relativ sti fra to absolutte stier ved hjælp af 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); ) )

Produktion

 Relative Path: ProgramizJavaTime.java

I ovenstående eksempel har vi brugt relativize()metoden til Pathgrænsefladen til at få en relativ sti fra to absolutte stier.

Anbefalede målinger :

  • Java stier klasse
  • Java Path Interface

Interessante artikler...