العمل مع نظام الملفات في C#: أمثلة عملية ونصائح

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا نحتاج العمل مع نظام الملفات في C#

\n

أي تطبيق جاد يواجه عاجلاً أم آجلاً الحاجة إلى حفظ البيانات. سواء كانت ملفات إعدادات، سجلات، مستندات مستخدم أو بيانات مؤقتة - فإن العمل مع نظام الملفات هو مهارة أساسية لمطور C#. في هذه المقالة، سنستعرض من خلال أمثلة عملية كيفية إنشاء وقراءة وكتابة وإدارة الملفات والمجلدات باستخدام .NET. ستتعلم ليس فقط العمليات الأساسية، ولكن أيضًا أفضل الممارسات لمعالجة الاستثناءات والعمل مع التيّارات.

\n\n

الفئات الرئيسية للعمل مع نظام الملفات

\n

في .NET، يتم استخدام مساحات الأسماء System.IO و System.IO.Enumeration للتفاعل مع نظام الملفات. الفئات الرئيسية التي ستحتاجها:

\n
    \n
  • File - طرق ثابتة لإنشاء ونسخ وحذف ونقل الملفات.
  • \n
  • FileInfo - فئة مثيل للعمل مع ملف معين (تدعم نفس العمليات ولكنها تتطلب إنشاء كائن).
  • \n
  • Directory - طرق ثابتة للعمل مع الدلائل.
  • \n
  • DirectoryInfo - فئة مثيل للعمل مع الدلائل.
  • \n
  • Path - فئة أدوات للعمل مع المسارات (الدمج، الحصول على الامتداد، الاسم، إلخ).
  • \n
  • FileStream - تيار منخفض المستوى لقراءة/كتابة البايتات.
  • \n
  • StreamReader / StreamWriter - أغلفة عالية المستوى للعمل مع النصوص.
  • \n
\n

يعتمد الاختيار بين الطرق الثابتة وفئات المثيلات على السيناريو. إذا كنت بحاجة إلى تنفيذ عملية واحدة - استخدم File أو Directory. إذا كنت تخطط لعدة عمليات على كائن واحد - قم بإنشاء FileInfo أو DirectoryInfo.

\n\n

إنشاء وقراءة وكتابة الملفات

\n\n

1. إنشاء وكتابة ملف نصي

\n

أسهل طريقة لكتابة نص إلى ملف هي استخدام طريقة File.WriteAllText. تقوم بإنشاء الملف (أو إعادة كتابة الملف الموجود) وتغلق التيار تلقائيًا.

\n
using System.IO;\n\nstring path = @"C:\\temp\\example.txt";\nstring content = "مرحبًا بالعالم! هذا ملف اختبار.";\n\nFile.WriteAllText(path, content);\nConsole.WriteLine("تم إنشاء الملف وكتابته.");
\n

إذا كنت بحاجة إلى إضافة بيانات إلى نهاية الملف، استخدم File.AppendAllText:

\n
File.AppendAllText(path, "\\nسطر مضاف.");
\n\n

2. قراءة الملف

\n

لقراءة النص بالكامل استخدم File.ReadAllText:

\n
string readContent = File.ReadAllText(path);\nConsole.WriteLine(readContent);
\n

إذا كان الملف كبيرًا، فمن الأفضل القراءة سطرًا بسطر عبر File.ReadLines (يعيد IEnumerable<string>):

\n
foreach (string line in File.ReadLines(path))\n{\n    Console.WriteLine(line);\n}
\n\n

3. العمل مع الملفات الثنائية

\n

للبيانات الثنائية (الصور، الأرشيفات) استخدم FileStream أو BinaryReader/BinaryWriter. مثال على كتابة مصفوفة بايتات:

\n
byte[] data = { 0x48, 0x65, 0x6C, 0x6C, 0x6F }; // "Hello"\nFile.WriteAllBytes(@"C:\\temp\\binary.dat", data);\n\nbyte[] readData = File.ReadAllBytes(@"C:\\temp\\binary.dat");\nConsole.WriteLine(BitConverter.ToString(readData)); // 48-65-6C-6C-6F
\n\n

العمل مع المجلدات وإدارة الملفات

\n\n

1. إنشاء وحذف المجلدات

\n

يمكن إنشاء مجلد باستخدام Directory.CreateDirectory. تقوم الطريقة بإنشاء جميع المجلدات المفقودة في المسار:

\n
string dirPath = @"C:\\temp\\MyApp\\Logs";\nDirectory.CreateDirectory(dirPath);\nConsole.WriteLine("تم إنشاء المجلد.");
\n

حذف مجلد (بشكل متكرر، مع جميع المحتويات):

\n
if (Directory.Exists(dirPath))\n{\n    Directory.Delete(dirPat                

المدونات

توصيات الكتب