Program Java pentru a obține calea relativă din două căi absolute

În acest exemplu, vom învăța să obținem calea relativă din două căi absolute în Java folosind metode String, clasa URI și pachetul java.nio.file.

Exemplul 1: obțineți o cale relativă din două căi absolute folosind clasa URI

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

Ieșire

 Calea absolută1: C: Users Desktop Programiz Java Time.java Calea absolută2: C: Utilizatorii Calea relativă a desktopului: Programiz / Java / Time.java

În exemplul de mai sus, avem două căi absolute numite absolutePath1 și absolutePath2. Am folosit clasa URI pentru a converti căile absolute în calea relativă.

  • toURI () - convertește Fileobiectul într-un Uri
  • relativize () - extrage calea relativă comparând două căi absolute între ele
  • getPath () - convertește Uri într-un șir

Lectură recomandată :

  • Fișier Java
  • Clasa URI Java

Exemplul 2: obțineți o cale relativă din două căi absolute folosind metode String

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

Ieșire

 Calea absolută1: C: Users Desktop Programiz Java Time.java Calea absolută2: C: Utilizatorii Calea absolută a desktopului: Programiz Java Time.java

În exemplul de mai sus, am convertit căile de fișiere în șiruri. Observați expresia,

 absolutePath1.substring(absolutePath2.length())

Aici, substring()metoda returnează partea de absolutePath1 pornind de la index egal cu lungimea de absolutePath2. Adică șirul reprezentat de absolutePath2 este eliminat din absolutePath1.

Pentru a afla mai multe despre modul de funcționare a șirului de caractere, vizitați substringul Java String ().

Exemplul 3: obțineți o cale relativă din două căi absolute folosind pachetul 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); ) )

Ieșire

 Relative Path: ProgramizJavaTime.java

În exemplul de mai sus, am folosit relativize()metoda Pathinterfeței pentru a obține o cale relativă din două căi absolute.

Lecturi recomandate :

  • Clasa Căi Java
  • Interfață Java Path

Articole interesante...