الفرق بين المراجعتين ل"Ruby/Dir/chdir"

من موسوعة حسوب
< Ruby‏ | Dir
اذهب إلى التنقل اذهب إلى البحث
سطر 24: سطر 24:
  
 
== أمثلة ==
 
== أمثلة ==
أمثلة عن استخدام التابع <code>chdir‎</code>:<syntaxhighlight lang="ruby">
+
مثال عن استخدام التابع <code>chdir</code> على المجلد <code>testdir</code> الذي يحتوي ملفين عاديين (<code>config.h</code> و <code>main.rb</code>) ، والمجلد الأب (<code>..</code>) ، والمجلد نفسه (<code>.</code>).<syntaxhighlight lang="ruby">
 
Dir.chdir("/var/spool/mail")
 
Dir.chdir("/var/spool/mail")
 
puts Dir.pwd
 
puts Dir.pwd

مراجعة 09:20، 23 سبتمبر 2018

يستبدل التابع chdir‎ مجلد العمل (working directory) الحالي للعملية ويعيّن مكانه السلسلة النصية المعطاة. عند استدعائه بدون تمرير وسيط، فسيغير مجلدَ العمل إلى قيمة متغير البيئة HOME أو LOGDIR.SystemCallError (وربما Errno::ENOENT) إذا كان المجلد المُستهدف غير موجود.

في حال إعطاء كتلة برمجية، فسيُمرّر اسم المجلد الحالي الجديد، وستنفّذ الكتلة على اعتباره المجلد الحالي. سيُستعاد مجلد العمل الأصلي عند الخروج من الكتلة. وتكون القيمة المعادة للتابع chdir مساوية لقيمة الكتلة.

يمكن أن تتشعّب كتل chdir، ولكن في البرامج المتفرّعة (Multi-threaded) سيُطلق خطأ إذا حاول أحد المهام الفرعية (thread) فتح كتلة chdir بينما نقوم مهمة فرعية أخرى بفتح آخر.

البنية العامة

chdir( [ string] )  0
chdir( [ string] ) {| path | block }  anObject

المعاملات

string

يحتوي هذا المعامل عنوان مجلد العمل الجديد.

القيمة المٌعادة

في حال تمرير كتلة فالقيمة المعادة للتابع chdir ستساوي قيمة تلك الكتلة.

أمثلة

مثال عن استخدام التابع chdir على المجلد testdir الذي يحتوي ملفين عاديين (config.h و main.rb) ، والمجلد الأب (..) ، والمجلد نفسه (.).

Dir.chdir("/var/spool/mail")
puts Dir.pwd
Dir.chdir("/tmp") do
  puts Dir.pwd
  Dir.chdir("/usr") do
    puts Dir.pwd
  end
  puts Dir.pwd
end
puts Dir.pwd

أنظر أيضًا

  • صفحة الصنف Dir.
  • التابع Dir[] : يكافئ التابع Dir[]‎ استدعاء Dir.glob([string,...], 0)‎. 

مصادر