كيفية الحصول على المسار المطلق لدليل العمل الحالي من IRB

StackOverflow https://stackoverflow.com/questions/1937743

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أقوم بتشغيل Ruby على Windows على الرغم من أنني لا أعرف ما إذا كان ذلك يجب أن يحدث فرقًا. كل ما أريد فعله هو الحصول على المسار المطلق لدليل العمل الحالي. هل هذا ممكن من IRB؟ يبدو أنه من البرنامج النصي يمكن استخدامه File.expand_path(__FILE__)

لكن من IRB جربت ما يلي وحصلت على خطأ "تم رفض الإذن":

File.new(Dir.new(".").path).expand
هل كانت مفيدة؟

المحلول

Dir.pwd يبدو أن تفعل خدعة.

http://ruby-doc.org/core/dir.html#method-c-pwd

نصائح أخرى

File.expand_path File.dirname(__FILE__) سيعود الدليل بالنسبة إلى الملف الذي يتم استدعاء هذا الأمر من.

ولكن Dir.pwd إرجاع دليل العمل (النتائج مماثلة للتنفيذ pwd في المحطة الخاصة بك)

أما بالنسبة للمسار بالنسبة للنص التنفيذ الحالي ، فمنذ ذلك الحين روبي 2.0 تستطيع ايضا استخذام

__dir__

لذلك هذا هو نفسه مثل

File.dirname(__FILE__)

سيعطيك هذا دليل العمل للملف الحالي.

File.dirname(__FILE__)

مثال:

Current_file: "/users/nemrow/sitm/folder1/folder2/amazon.rb"

النتيجة: "/المستخدمون/nemrow/sitm/folder1/folder2"

إذا كنت ترغب في الحصول على المسار الكامل لدليل ملف RB الحالي:

File.expand_path('../', __FILE__)

من خلال هذا يمكنك الحصول على المسار المطلق لأي ملف موجود في أي دليل.

File.join(Dir.pwd,'some-dir','some-file-name')

هذا سيعود

=> "/User/abc/xyz/some-dir/some-file-name"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top