English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المثال، سنتعلم كيفية استخدام طريقة String، فئة URI و مكتبة java.nio.file للحصول على المسار النسبي من مسارين مطلقين في Java.
import java.io.File; import java.net.URI; class Main { public static void main(String[] args) { try //مسارين مطلقين File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); System.out.println("المسار المطلق 1: " + absolutePath1); File absolutePath2 = new File("C:\\Users\\Desktop"); System.out.println("المسار المطلق 2: " + absolutePath2); //تحويل المسار المطلق إلى URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); //إنشاء مسار نسبي من مسارين URI relativePath = path2.relativize(path1); //تحويل URI إلى سلسلة String path = relativePath.getPath(); System.out.println("المسار النسبي: " + path); }ُألقِ القبض على (Exception e)ُ{ e.getStackTrace(); {} {} {}
نتيجة الإخراج
المسار المطلق 1: C:\Users\Desktop\w3codebox\Java\Time.java المسار المطلق 2: C:\Users\Desktop المسار النسبي: w3codebox/Java/Time.java
في المثال السابق، لدينا مسارين مطلقين يُدعيان absolutePath1 و absolutePath2. لقد قمنا بتحويل المسارين المطلقين إلى مسارين نسبيين باستخدام فئة URI.
toURI() - تحويل عمود الملف إلىUri
relativize() - استخراج المسار النسبي من خلال مقارنة المسارين المطلقين مع بعضهما البعض
getPath() - تحويل URI إلى نص
import java.io.File; class Main { public static void main(String[] args) { //إنشاء عنصر ملف File file1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); File file2 = new File("C:\\Users\\Desktop"); // تحويل ملف إلى نص String absolutePath1 = file1.toString(); System.out.println("المسار المطلق 1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("المسار المطلق 2: " + absolutePath2); // للحصول على المسار النسبي String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("المسار المطلق: " + relativePath); {} {}
نتيجة الإخراج
المسار المطلق 1: C:\Users\Desktop\w3codebox\Java\Time.java المسار المطلق 2: C:\Users\Desktop المسار المطلق: \w3codebox\Java\Time.java
في المثال السابق، قمنا بتحويل مسار الملف إلى نص. لاحظ التعبير
absolutePath1.substring(absolutePath2.length())
في هذا المثال، يعود substring () من method لجزء من absolutePath1 من بدء من المؤشر يساوي طول absolutePath2. أي أن يتم حذف النص الممثل ب absolutePath2 من inside absolutePath1.
للحصول على معلومات إضافية حول كيفية عمل تحتوي النصوص الفرعية، يرجى زيارةJava String substring().
import java.nio.file.Path; import java.nio.file.Paths; class Main { public static void main(String[] args) { //إنشاء عنصر ملف Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); Path absolutePath2 = Paths.get("C:\\Users\\Desktop"); //تحويل المسار ال絀ولي إلى نسبي Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("المسار النسبي: " + relativePath); {} {}
نتيجة الإخراج
المسار النسبي: w3codebox\Java\Time.java
في المثال أعلاه، استخدمنا طريقة relativize() من واجهة Path للحصول على مسار نسبي من مسارين絀ولي.