Program Java na získanie relatívnej cesty z dvoch absolútnych ciest

V tomto príklade sa naučíme získať relatívnu cestu z dvoch absolútnych ciest v Jave pomocou metód String, triedy URI a balíka java.nio.file.

Príklad 1: Získajte relatívnu cestu z dvoch absolútnych ciest pomocou triedy 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(); ) ) )

Výkon

 Absolútna cesta 1: C: Users Desktop Programiz Java Time.java Absolútna cesta 2: C: Users Desktop relatívna cesta: Programiz / Java / Time.java

Vo vyššie uvedenom príklade máme dve absolútne cesty pomenované absolutePath1 a absolutePath2. Použili sme triedu URI na prevod absolútnych ciest na relatívnu cestu.

  • toURI () - prevádza Fileobjekt na Uri
  • relativize () - extrahuje relatívnu cestu porovnaním dvoch absolútnych ciest navzájom
  • getPath () - prevádza Uri na reťazec

Odporúčané čítanie :

  • Súbor Java
  • Trieda Java URI

Príklad 2: Získajte relatívnu cestu z dvoch absolútnych ciest pomocou metód 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); ) )

Výkon

 Absolútna cesta 1: C: Users Desktop Programiz Java Time.java Absolútna cesta 2: C: Users Desktop Absolútna cesta: Programiz Java Time.java

Vo vyššie uvedenom príklade sme konvertovali cesty k súborom na reťazce. Všimnite si výraz,

 absolutePath1.substring(absolutePath2.length())

Tu substring()metóda vracia časť absolútnej cesty1 začínajúcu od indexu rovného dĺžke absolútnej cesty2. To znamená, že reťazec predstavovaný absolútnou cestou2 je odstránený z absolútnej cesty1.

Ak sa chcete dozvedieť viac o tom, ako funguje podreťazec, navštívte podreťazec Java String ().

Príklad 3: Získajte relatívnu cestu z dvoch absolútnych ciest pomocou balíka 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); ) )

Výkon

 Relative Path: ProgramizJavaTime.java

Vo vyššie uvedenom príklade sme použili relativize()metódu Pathrozhrania na získanie relatívnej cesty z dvoch absolútnych ciest.

Odporúčané hodnoty :

  • Trieda ciest Java
  • Rozhranie Java Path

Zaujímavé články...