العمل مع نظام الملفات في C#: للمبتدئين
العمل مع نظام الملفات هو أحد المهارات الأساسية لأي مطور. في C# (.NET) توجد أدوات قوية لإنشاء وقراءة وكتابة وحذف الملفات والدلائل. في هذه المقالة، سنستعرض العمليات الأساسية مع نظام الملفات التي ستفيد المبتدئين والمبرمجين ذوي الخبرة على حد سواء. جميع الأمثلة مكتوبة بلغة C# وتستخدم مساحة الأسماء System.IO.
أساسيات العمل مع مساحة الأسماء System.IO
تحتوي مساحة الأسماء System.IO على جميع الفئات الأساسية للتفاعل مع نظام الملفات. للبدء، أضف التوجيه التالي في بداية ملفك:
using System.IO;using System; // لـ Console والعمليات الأساسية الأخرىالفئات الرئيسية التي سنستخدمها:
File— طرق ثابتة للعمل مع الملفات (إنشاء، نسخ، حذف).FileInfo— فئة مثيل للحصول على معلومات حول ملف معين.Directory— طرق ثابتة للعمل مع المجلدات.DirectoryInfo— فئة مثيل للحصول على معلومات حول دليل.Path— أدوات مساعدة للعمل مع المسارات.
دعنا نستعرض كل جانب عملياً.
إنشاء وكتابة ملف
أبسط طريقة لإنشاء ملف وكتابة نص فيه هي استخدام الطريقة File.WriteAllText. تقوم بإنشاء ملف (أو إعادة كتابة ملف موجود) وكتابة سلسلة نصية.
string path = @"C:\\Temp\\example.txt";string content = "مرحباً بالعالم! هذا ملف اختبار.";
File.WriteAllText(path, content);Console.WriteLine("تم إنشاء الملف وكتابته.");إذا كنت بحاجة لكتابة عدة أسطر، استخدم File.WriteAllLines:
string[] lines = { "السطر الأول", "السطر الثاني", "السطر الثالث" };File.WriteAllLines(path, lines);لإضافة بيانات إلى نهاية ملف موجود، استخدم File.AppendAllText:
File.AppendAllText(path, "سطر مضاف.");قراءة البيانات من ملف
قراءة الملف بديهية أيضاً. الطريقة File.ReadAllText تعيد كل المحتوى كسلسلة نصية واحدة:
string readContent = File.ReadAllText(path);Console.WriteLine("محتوى الملف:");Console.WriteLine(readContent);إذا كان الملف يتكون من أسطر، فمن الأسهل استخدام File.ReadAllLines التي تعيد مصفوفة من الأسطر:
string[] readLines = File.ReadAllLines(path);foreach (string line in readLines){ Console.WriteLine(line);}للملفات الكبيرة، من الأفضل استخدام القراءة التدفقية باستخدام StreamReader لتجنب تحميل الملف بأكمله في الذاكرة:
using (StreamReader reader = new StreamReader(path)){ string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); }}العمل مع المجلدات (الدلائل)
إنشاء المجلدات والتحقق من وجودها وحذفها هي مهام شائعة. إليك كيفية القيام بذلك باستخدام الفئة Directory:
string dirPath = @"C:\\Temp\\MyFolder";
// التحقق من الوجودif (!Directory.Exists(dirPath)){ Directory.CreateDirectory(dirPath); Console.WriteLine("تم إنشاء المجلد.");}else{ Console.WriteLine("المجلد موجود بالفعل.");}
// حذف المجلد (إذا كان فارغاً)if (Directory.Exists(dirPath)){ Directory.Delete(dirPath); Console.WriteLine("تم حذف المجلد.");}للحصول على قائمة الملفات في مجلد، استخدم Directory.GetFiles:
string[] files = Directory.GetFiles(@"C:\\Temp");foreach (string file in files){ Console.WriteLine(file);}وبالمثل للمجلدات الفرعية