كيفية الحصول على المسار المطلق لدليل العمل الحالي من IRB
-
20-09-2019 - |
سؤال
أنا أقوم بتشغيل Ruby على Windows على الرغم من أنني لا أعرف ما إذا كان ذلك يجب أن يحدث فرقًا. كل ما أريد فعله هو الحصول على المسار المطلق لدليل العمل الحالي. هل هذا ممكن من IRB؟ يبدو أنه من البرنامج النصي يمكن استخدامه File.expand_path(__FILE__)
لكن من IRB جربت ما يلي وحصلت على خطأ "تم رفض الإذن":
File.new(Dir.new(".").path).expand
المحلول
Dir.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"