Ruby/File
الصنف File
هو اختصار لأي كائن ملفٍ قابل للوصولعبر البرنامج ومرتبط عن كثب بالصنف IO. يتضمن الصنف File توابع الوحدة FileTest
كتوابع صنفٍ مما يسمح لك باستعمال File.exist?("foo")
مثلًا.
في شرح توابع الصنف File
التالية، تكون بتات الأذونات (permission bits) مجموعة من البتات التي تعتمد على المنصة المستعملة والتي تشير إلى أذونات الملف. في الأنظمة الشبيهة بيونكس، تُعرض الأذونات على شكل مجموعة من ثلاثة ثمانيات (octets)؛ الأولى من أجل المالك، والثانية من أجل المجموعة المالكة، والثالثة تخص الأشخاص الآخرين. في كل واحدة من هذه الثمانية، يمكن ضبط الأذونات فيها إلى أذونات القراءة أو الكتابة أو التنفيذ للملف.
بتات الأذونات 0644 (في الصيغة الثمانية) ستُفسَّر على أنَّها أذونات قراءة وكتابة للمالك، وقراءة فقط للمجموعة المالكة والآخرين. البتات ذات الترتيب الأعلى قد تُستعمل للإشارة إلى نوع الملف (أي هل هو ملفٌ عادي أم مجلد، أم أنبوب، أم مقبس، ...إلخ.) وميزات خاصة أخرى. إن كانت الأذونات لمجلدٍ، فسيكون معنى بت التنفيذ مخالف لما هو معروف، إذ يتيح البحث عن المجلد عند ضبطه ومنحه لهذا لمجلد.
في الأنظمة الغير مطابقة لمعايير POSIX، قد يكون هنالك إمكانية لجعل الملف قابلًا للقراءة أو قابلًا للقراءة والكتابة. في هذه الحالة، ستُجمَّع بتات الأذونات المتبقية لتمثِّل قيم أخرى محدَّدة. في ويندوز NT مثلًا، تشير قيمة بتات الأذونات 0644 الافتراضية إلى أذونات القراءة والكتابة للمالك، والقراءة فقط لبقية المستخدمين. الشي الوحيد الذي يمكن فعله هنا هو جعل الملف قابلًا للقراءة فقط وهذا ما تفعله القيمة 0444.
هنالك ثوابت متنوعة يمكن استعمال مع توابع الصنف File
تجدها في صفحة الثوثيق File::Constants
.
الثوابت
ALT_SEPARATOR
يمثِّل الفاصل البديل المحدَّد من طرف المنصة المستعملة.
PATH_SEPARATOR
يمثِّل الفاصل المستعمل في فصل قائمة المسارات.
SEPARATOR
يمثِّل الفاصل المستعمل في فصل أجزاء المجلدات في المسار.
توابع الصنف العامة
absolute_path
يحول اسم مسار محدَّد إلى مسار مطلق.
atime
يعيد زمن آخر وصول إلى ملفٍ محدَّدٍ.
basename
يعيد آخر مكوِّن من مسار اسم الملف المعطى.
birthtime
يعيد وقت إنشاء ملف محدَّد.
blockdev?
يتحقق إن كان ملفٌ ما هو جهاز كتلي (block device).
chardev?
يتحقق إن كان ملفٌ ما هو جهاز محرفي (character device).
chmod
يغيِّر بتات الأذونات لملف أو عدة ملفات محدَّدة.
chown
يغير المالك والمجموعة المالكة لملف أو عدة ملفات محدَّدة إلى مالك ومجموعة مالكة أخرى.
ctime
يعيد وقت آخر تغيير أجري على ملف محدَّد.
delete
يحذف ملفًا محدَّدًا.
directory?
يتحقق إن كان ملفٌ ما مجلَّدًا أو وصلةً رمزيًّةً تشير إلى مجلدٍ.
dirname
يعيد جميع مكونات المسار المعطى لملفٍ باستثناء المكون الأخير (الاسم الأساسي [basename]) الذي يلي آخر فاصل في المسار.
zero?
يتحقق إن كان ملفٌ ما موجودًا وخاويًا (صفر الحجم).
executable?
يتحقق إن كان ملفٌ ما قابلًا للتنفيذ من طرف المعرِّف الفعلي للمستخدم المالك والمجموعة المالكة للعملية الحالية.
executable_real?
يتحقق إن كان ملفٌ ما قابلًا للتنفيذ من طرف المعرِّف الحقيقي للمستخدم المالك والمجموعة المالكة للعملية الحالية.
exist?
يتحقق إن كان ملفٌ ما موجودًا.
exists?
أصبح مهملًا. لا تستخدمه رجاءً.
expand_path
يحول مسار ملفٍ ما إلى مسار مطلق مع توسيع الرمز ~
إن وجد في المسار المعطى.
extname
يعيد لاحقة الملف المعطى. لاحقة الملف هي جزء من اسمه وتتوضع في مساره بعد آخر نقطة فيه.
file?
يتحقق إن كان ملفٌ ما موجودًا وكان ملفًا طبيعيًّا.
fnmatch
يتحقق من تطابق مسار مع نمط محدَّد.
fnmatch?
يتحقق من تطابق مسار مع نمط محدَّد.
ftype
يعرِّف التابع ftype
نوع الملف المعطى.
grpowned?
يتحقق إن كان ملفٌ ما موجودًا وكان معرِّف المجموعة المالكة الفعلي للعملية التي استدعت التابع هو مالك هذا الملف.
identical?
يتحقق إن كان الملفان المعطيان متماثلين تمامًا.