سؤال

مرحبا كنت اختبر بعض الأشياء الأساسية للغاية في روبي واكتشف ما يلي.

إذا وضعت في ملف يسمى xxxx.rb في هذا المسار "C: المستندات والإعدادات Desktop XXXX.rb"

puts __FILE__

واستدعاء ملف Ruby هذا في سطر الأوامر دون مسبق Ruby، فإن الإخراج هو التالي

C: / المستندات والإعدادات / سطح المكتب / xxxx.rb

ولكن إذا استدعت ملف xxxx.rb مع روبي (روبي xxxx.rb) في الأمر مثل الإخراج هو ما يلي:

xxxx.rb.

لماذا هذا الفرق؟ شكرًا

PD: أنا على نظام التشغيل Windows XP SP3

نسخة روبي: 1.8.6

هل كانت مفيدة؟

المحلول

ما تريده هو توسيع المسار بشكل صحيح:

# Affected by the current working directory, etc.
puts __FILE__

# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)

هذا يأخذ دليل عملك الحالي في الاعتبار.

نصائح أخرى

أنا أظن أنه عندما انقر فقط انقر فوق الملف، يتم تمرير المسار المطلق. يجب عليك تحقيق نفس التأثير عن طريق الاتصال به مثل:

ruby C:/Documents and Settings/Desktop/xxxx.rb

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top