العمل مع نظام الملفات
- 3 دقائق
يحتوي .NET على أنواع مضمنة للعمل مع نظام الملفات التي يمكنك العثور عليها في مساحة الاسم System.IO.
هنا، يمكنك التعرف على الأنواع المتوفرة في System.IO باستخدام C# لقراءة نظام الملفات لاكتشاف الملفات والدلائل.
السيناريو
غالبًا ما يكتب كبار تجار التجزئة البيانات إلى الملفات بحيث يمكن معالجتها لاحقًا على دفعات.
تقوم Tailwind Traders بجعل متاجرها تكتب إجمالي مبيعاتها في ملف وترسل هذا الملف إلى موقع مركزي. لاستخدام هذه الملفات، تحتاج الشركة إلى إنشاء معالجة دفعة يمكنها العمل مع نظام الملفات.
تضمين مساحة الاسم System.IO
تحتوي مساحة الاسم System.IO على أنواع مضمنة تسمح لك بالتفاعل مع الملفات والدلائل. على سبيل المثال، يمكنك استرداد مجموعات من الملفات والدلائل استنادا إلى معايير البحث وخصائص getset الملفات والدلائل. يمكنك أيضًا استخدام أنواع مساحات الأسماء System.IO لقراءة وكتابة تدفقات البيانات والملفات سواء بشكل متزامن أو بشكل غير متزامن.
ننتقل الآن إلى التركيز على ما تحتاج إلى معرفته للعمل مع الدلائل باستخدام الفئة Directory الواردة في مساحة الاسم System.IO. تعرض فئة الدليل أساليب ثابتة للإنشاء والنقل والتعداد خلال الدلائل والدلائل الفرعية.
سرد كافة الدلائل
Directory غالبا ما تستخدم الفئة لسرد (أو تعداد) الدلائل. على سبيل المثال، تحتوي بنية ملف Tailwind Traders على مجلد جذر يسمى stores. في هذا المجلد توجد مجلدات فرعية منظمة حسب رقم المتجر، وداخل هذه المجلدات يوجد إجمالي المبيعات وملفات المخزون. تبدو البنية مثل هذا المثال:
📂 stores
📄 sales.json
📄 totals.txt
📂 201
📄 sales.json
📄 salestotals.json
📄 inventory.txt
📂 202
لقراءة أسماء الدلائل ذات المستوى الأعلى وسردها، يمكنك استخدم الدالة Directory.EnumerateDirectories.
IEnumerable<string> listOfDirectories = Directory.EnumerateDirectories("stores");
foreach (var dir in listOfDirectories) {
Console.WriteLine(dir);
}
// Outputs:
// stores/201
// stores/202
سرد الملفات في دليل معين
لسرد أسماء كافة الملفات في دليل، يمكنك استخدام الدالة Directory.EnumerateFiles.
IEnumerable<string> files = Directory.EnumerateFiles("stores");
foreach (var file in files)
{
Console.WriteLine(file);
}
// Outputs:
// stores/totals.txt
// stores/sales.json
سرد كافة المحتويات في الدليل وكافة الدلائل الفرعية
تحتوي كل من الدالتين Directory.EnumerateDirectories وDirectory.EnumerateFiles على تحميل زائد يقبل معلمة لتحديد أن ملفات نمط البحث والدلائل يجب أن تتطابق.
لديهما أيضًا تحميل زائد آخر يقبل معلمة للإشارة إلى ما إذا كان يجب اجتياز مجلد محدد وكافة المجلدات الفرعية الخاصة به بشكل متكرر.
// Find all *.txt files in the stores folder and its subfolders
IEnumerable<string> allFilesInAllFolders = Directory.EnumerateFiles("stores", "*.txt", SearchOption.AllDirectories);
foreach (var file in allFilesInAllFolders)
{
Console.WriteLine(file);
}
// Outputs:
// stores/totals.txt
// stores/201/inventory.txt
في التمرين التالي، يمكنك استخدام Directory الفئة لقراءة دليل متاجر Tailwind Traders الرئيسية ديناميكيا للعثور على جميع ملفات sales.json.
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟