سؤال

وأنا أحاول كتابة السيناريو روبي بسيطة من شأنها أن نسخ الملف إلى الدلائل المباشرة للدليل. كيف أحصل سوى الدلائل المباشرة؟

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

المحلول

وDir.glob("**/") سيعود مجموعة من كافة مسارات تحت الدليل الحالي. من هناك يمكنك تصفية القائمة ونسخ ملف مع File.copy(from, to)

نصائح أخرى

وعلى افتراض أردت فقط <م> فورية الدلائل، يمكنك استخدام Dir['*/'] (الذي يجمع بين مايكل Sepcot وإجابات glenra ل).

إذا كنت تعني للعثور على جميع <م> فوري الدلائل (فقط مستوى واحد دون مكان وجودك)، حاول هذا:

Dir.chdir("/some/path/you/want/to/check/below")
subdir_list=Dir["*"].reject{|o| not File.directory?(o)}

وهذا هو: تغيير الدليل في مكان ما، بناء على مجموعة من الملفات التي عثر عليها هناك، ترفض تلك العناصر مجموعة التي ليست أدلة، والعودة arrray أعدمت الناتجة

.

ولعل أفضل طريقة للتعامل مع الملفات في روبي هو <وأ href = "https://ruby-doc.org/stdlib-2.3.0/libdoc/pathname/rdoc/Pathname.html" يختلط = "نوفولو noreferrer "> Pathname . فهو يجمع بين أساليب الفئة من عدد قليل من الوحدات القائمة على ملف واحد في الدرجة OOP لطيفة للاستخدام. لذلك أنت لا تحتاج إلى تمرير قيمة في طريقة مثل كنت قد لمع Dir أو File، يمكنك الاتصال فقط على طريقة الكائن نفسه.

إليك كيفية طباعة الدلائل المباشرة:

require 'pathname'

puts Pathname('some/directory').children.select(&:directory?)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top