التابع File.expand_path
في روبي
يحول التابع expand_path
مسار ملفٍ ما إلى مسار مطلق مع توسيع الرمز ~
إن وجد في المسار المعطى. ستستعمل المسارات النسبية مرجعًا إلى مجلد العمل الحالي للعملية إلا إذا أعطي اسم مجلد أو مسار ليُستعمَل نقطةً للإنطلاق وتحديد المسار المطلق.
البنية العامة
expand_path(file_name [, dir_string] ) → abs_file_name
المعاملات
file_name
اسم المسار المراد تحويله إلى مسار مطلق. يمكن لهذا المسار أن يبدأ بالرمز ~
والذي يوسَّع إلى مجلد المنزل للمستخدم المالك للعملية (يجب أن يكون متغير البيئة HOME
مضبوطًا بشكل صحيح). فيوسَّع user~
مثلًا إلى المجلد المنزل للمستخدم المالك للعملية.
dir_string
المجلد أو المسار الذي سيؤخذ بالحسبان ويعد نقطة بدايةٍ للمسار المطلق المراد حسابه. إن لم يُعطَ هذا المعامل، فستُستعمَل المسارات النسبية مرجعًا إلى مجلد العمل الحالي للعملية.
القيمة المعادة
يعاد المسار المطلق الناتج عن تحويل المسار file_name
.
أمثلة
مثال بسيط على استعمال التابع expand_path
:
File.expand_path("~oracle/bin") #=> "/home/oracle/bin"
مثال على استعمال التابع expand_path
مع تمرير المعامل dir_string
إليه:
File.expand_path("ruby", "/usr/bin") #=> "/usr/bin/ruby"
المثال التالي هو مثال معقَّد يُستبيَن فيه أيضًا المجلد الأب بالشكل التالي (افترض أنَّنا حاليًّا في المجلد bin/mygem ونريد المسار المطلق للملف lib/mygem.rb):
File.expand_path("../../lib/mygem.rb", __FILE__)
#=> ".../path/to/project/lib/mygem.rb"
يُستبيَن أولًا في هذا المثال المجلد الأب للملف __FILE__
، الذي هو bin/، ثم ينتقل إلى المجلد الأب له، الذي هو المجلد الجذر للمشروع، ثم يضيف بعد ذلك lib/mygem.rb.
انظر أيضا
- التابع
absolute_path
: يحول اسم مسار محدَّد إلى مسار مطلق. - التابع
basename
: يعيد آخر مكوِّن من مسار اسم الملف المعطى. - التابع
extname
: يعيد لاحقة الملف المعطى. لاحقة الملف هي جزء من اسمه وتتوضع في مساره بعد آخر نقطة فيه.