Ruby/File

من موسوعة حسوب
مراجعة 13:26، 28 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة الصفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الصنف 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?‎

يتحقق إن كان الملفان المعطيان متماثلين تمامًا.

join

lchmod

lchown

link

lstat

lutime

mkfifo

mtime

new

open

owned?‎

path

pipe?‎

readable?‎

readable_real?‎

readlink

realdirpath

realpath

rename

setgid?‎

setuid?‎

size

size?‎

socket?‎

split

stat

sticky?‎

symlink

symlink?‎

truncate

umask

unlink

utime

world_readable?‎

world_writable?‎

writable?‎

writable_real?‎

zero?‎

توابع النسخة العامة