التابع File.expand_path في روبي

من موسوعة حسوب
< Ruby‏ | File

يحول التابع 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: يعيد لاحقة الملف المعطى. لاحقة الملف هي جزء من اسمه وتتوضع في مساره بعد آخر نقطة فيه.

مصادر