الفرق بين المراجعتين لصفحة: «Ruby/File/expand path»

من موسوعة حسوب
< Ruby‏ | File
إنشاء الصفحة.
 
إضافة شرح
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>File.expand_path</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>File.expand_path</code> في روبي}}</noinclude>
يعيد التابع <code>expand_path</code> ن
يحول التابع <code>expand_path</code> مسار ملفٍ ما إلى مسار مطلق مع توسيع الرمز <code>~</code> إن وجد في المسار المعطى. ستستعمل المسارات النسبية مرجعًا إلى مجلد العمل الحالي للعملية إلا إذا أعطي اسم مجلد أو مسار ليُستعمَل نقطةً للإنطلاق وتحديد المسار المطلق.


==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">expand_path(file_name [, dir_string] ) → abs_file_name
<syntaxhighlight lang="ruby">expand_path(file_name [, dir_string] ) → abs_file_name
</syntaxhighlight>
</syntaxhighlight>
== المعاملات ==
=== <code>file_name</code> ===
اسم المسار المراد تحويله إلى مسار مطلق. يمكن لهذا المسار أن يبدأ بالرمز <code>~</code> والذي يوسَّع إلى مجلد المنزل للمستخدم المالك للعملية (يجب أن يكون متغير البيئة <code>HOME</code> مضبوطًا بشكل صحيح). فيوسَّع <code>user~</code> مثلًا إلى المجلد المنزل للمستخدم المالك للعملية.
=== <code>dir_string</code> ===
المجلد أو المسار الذي سيؤخذ بالحسبان ويعد نقطة بدايةٍ للمسار المطلق المراد حسابه. إن لم يُعطَ هذا المعامل، فستُستعمَل المسارات النسبية مرجعًا إلى مجلد العمل الحالي للعملية.


==القيمة المعادة==
==القيمة المعادة==
يعاد  
يعاد المسار المطلق الناتج عن تحويل المسار <code>file_name</code>.
==أمثلة==
==أمثلة==
مثال على استعمال التابع <code>expand_path</code>:
مثال بسيط على استعمال التابع <code>expand_path</code>:<syntaxhighlight lang="ruby">
File.expand_path("~oracle/bin")          #=> "/home/oracle/bin"
</syntaxhighlight>مثال على استعمال التابع <code>expand_path</code> مع تمرير المعامل <code>dir_string</code> إليه:<syntaxhighlight lang="ruby">
File.expand_path("ruby", "/usr/bin")      #=> "/usr/bin/ruby"
</syntaxhighlight>المثال التالي هو مثال معقَّد يُستبيَن فيه أيضًا المجلد الأب بالشكل التالي (افترض أنَّنا حاليًّا في المجلد bin/mygem  ونريد المسار المطلق للملف lib/mygem.rb):<syntaxhighlight lang="ruby">
File.expand_path("../../lib/mygem.rb", __FILE__)
#=> ".../path/to/project/lib/mygem.rb"
</syntaxhighlight>يُستبيَن أولًا في هذا المثال المجلد الأب للملف <code>__FILE__</code>، الذي هو bin/‎، ثم ينتقل إلى المجلد الأب له، الذي هو المجلد الجذر للمشروع، ثم يضيف بعد ذلك lib/mygem.rb.


==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/File/absolute path|absolute_path]]</code>: يحول اسم مسار محدَّد إلى مسار مطلق.
* التابع <code>[[Ruby/File/basename|basename]]</code>: يعيد آخر مكوِّن من مسار اسم الملف المعطى. 
* التابع <code>[[Ruby/File/extname|extname]]</code>: يعيد لاحقة الملف المعطى. لاحقة الملف هي جزء من اسمه وتتوضع في مساره بعد آخر نقطة فيه.


==مصادر==
==مصادر==

المراجعة الحالية بتاريخ 11:53، 28 نوفمبر 2018

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

مصادر