إدارة الأدلة
أنشئ الأدلة واعرضها واحذفها.
إدارة الأدلة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
إدارة الأدلة
يُعد FileManager الكائن المركزي لإنشاء الملفات والمجلدات وسردها ونقلها وحذفها.
FileManager المشترك
استخدموا FileManager.default لمعظم العمليات. فهو يوفر نسخة مشتركة آمنة للاستخدام مع الخيوط.
import Foundation
let fm = FileManager.default
print("Got the default file manager")إنشاء دليل
تنشئ createDirectory(at:withIntermediateDirectories:) مجلدًا، مع إمكانية إنشاء الأدلة الأصلية المفقودة اختياريًا.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")التحقق من الوجود
تُبلغ fileExists(atPath:) عمّا إذا كان المسار موجودًا، وتُخبرك علامة inout بما إذا كان المسار مجلدًا.
import Foundation
let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")سرد المحتويات
تُرجع contentsOfDirectory(at:includingPropertiesForKeys:) عناوين URL الموجودة داخل مجلد.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp")
if let items = try? fm.contentsOfDirectory(at: dir, includingPropertiesForKeys: nil) {
print("Item count: \(items.count)")
}سرد الأسماء فقط
تُرجع contentsOfDirectory(atPath:) المعتمدة على المسار سلاسل نصية بسيطة لأسماء الملفات عندما لا تحتاج إلى عناوين URL كاملة.
import Foundation
let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
print("Names count: \(names.count)")
}إزالة العناصر
تحذف removeItem(at:) ملفًا أو شجرة مجلدات كاملة. استخدمها بحذر.
import Foundation
let fm = FileManager.default
let url = URL(fileURLWithPath: "/tmp/myapp/cache/old.txt")
try? fm.removeItem(at: url)
print("Removed item if it existed")النقل وإعادة التسمية
تنقل moveItem(at:to:) العنصر أو تعيد تسميته؛ بينما تنشئ copyItem(at:to:) نسخة من الملف.
import Foundation
let fm = FileManager.default
let src = URL(fileURLWithPath: "/tmp/a.txt")
let dst = URL(fileURLWithPath: "/tmp/b.txt")
try? fm.moveItem(at: src, to: dst)
print("Moved if source existed")التعداد المتعمق
يتنقل FileManager.DirectoryEnumerator عبر شجرة فرعية كاملة بشكل تكراري، ويُرجع كل عنوان URL متداخل.
import Foundation
let fm = FileManager.default
let root = URL(fileURLWithPath: "/tmp")
if let e = fm.enumerator(at: root, includingPropertiesForKeys: nil) {
var count = 0
for case _ as URL in e { count += 1; if count > 5 { break } }
print("Walked some entries: \(count)")
}سمات الملفات
تُرجع attributesOfItem(atPath:) بيانات وصفية مثل الحجم وتاريخ التعديل في قاموس.
import Foundation
let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
let size = attrs[.size] {
print("Has size attribute: \(size)")
}التعامل مع حالات الفشل
تُطلق عمليات المجلدات أخطاءً عند حدوث مشكلات في الأذونات أو عند عدم وجود المسار. غلّفها داخل do/catch للتعامل معها بسلاسة.
import Foundation
let fm = FileManager.default
do {
try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
print("Remove failed: \(error.localizedDescription)")
}تحقق سريع
أي خيار يجعل createDirectory ينشئ أيضًا المجلدات الأصلية المفقودة؟
مراجعة
ينشئ FileManager.default المجلدات باستخدام createDirectory، ويتحقق باستخدام fileExists، ويسرد المحتويات باستخدام contentsOfDirectory، ويحذف باستخدام removeItem، وينقل العناصر أو ينسخها. كما عددتَ الأشجار الفرعية وقرأتَ السمات. التالي: مجلدات عزل التطبيق.
الأسئلة الشائعة
هل درس «إدارة الأدلة» مجاني؟
نعم — نص درس «إدارة الأدلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «إدارة الأدلة»؟
أنشئ الأدلة واعرضها واحذفها. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «إدارة الأدلة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.