التعامل مع الملفات في C#: I/O Opera[أمثلة]

⚡ ملخص ذكي

تتيح لك عمليات الملفات في لغة C# قراءة الملفات وكتابتها ونسخها وحذفها باستخدام مساحة الاسم System.IO. ستتعلم هنا كيفية استخدام File.Exists وFile.ReadAllLines وFile.ReadAllText وFile.Copy وFile.Delete مع أمثلة برمجية واضحة.

  • 📂 ما هو : عمليات الملفات في لغة C# تقرأ وتكتب وتنسخ وتحذف الملفات من خلال مساحة اسم System.IO.
  • ✅ الملف موجود: تتحقق الدالة File.Exists(path) مما إذا كان الملف موجودًا قبل قراءته أو حذفه.
  • ؟؟؟؟ قراءة: تقوم الدالة File.ReadAllLines بإرجاع مصفوفة من السلاسل النصية، بينما تقوم الدالة File.ReadAllText بإرجاع الملف بأكمله كسلسلة نصية واحدة.
  • 📋 نسخ وحذف: تقوم الدالة File.Copy بنسخ ملف إلى مسار جديد، بينما تقوم الدالة File.Delete بحذفه.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم أدوات الذكاء الاصطناعي مثل GitHub Copilot بإنشاء كود معالجة الملفات بلغة C# على الفور.

ملف C# Operaستعقد

تحتوي لغة C# على مجموعة واسعة من عمليات الملفات. تتضمن هذه العمليات فتح ملف أو قراءة أو كتابة ملف. قد تكون هناك حالات تريد فيها العمل مع الملفات بشكل مباشر، وفي هذه الحالة ستستخدم عمليات الملفات المتوفرة في لغة C#. فيما يلي بعض عمليات الملفات الأساسية المذكورة.

  1. القراءة - هذه العملية هي عملية القراءة الأساسية حيث يتم قراءة البيانات من ملف.
  2. الكتابة – هذه العملية هي عملية الكتابة الأساسية حيث يتم كتابة البيانات إلى ملف. بشكل افتراضي، تتم إزالة كل المحتويات الموجودة من الملف وكتابة محتوى جديد.
  3. الإضافة – تتضمن هذه العملية أيضًا كتابة معلومات إلى ملف. والفرق الوحيد هو أن البيانات الموجودة في الملف لا يتم الكتابة فوقها. تتم إضافة البيانات الجديدة المراد كتابتها في نهاية الملف.

أوامر الإدخال/الإخراج الأساسية

يمكن لـ C# و.Net العمل مع الملفات بمساعدة العديد من أوامر إدخال/إخراج الملفات. دعونا نلقي نظرة على بعض هذه الأوامر. على سبيل المثال، سنفترض أن لدينا ملفًا في محرك الأقراص D يسمى example.txt.
سيكون الملف عبارة عن ملف نصي بسيط ويحتوي على سطرين كما هو موضح أدناه

  • Guru99 – .Net
  • Guru99 - دو#

على سبيل المثال، سنقوم بإنشاء تطبيق وحدة تحكم بسيط ونعمل باستخدام أوامر الإدخال/الإخراج الخاصة بالملف. تطبيق وحدة التحكم هو التطبيق الأساسي الذي تم إنشاؤه في البرنامج التعليمي السابق. في تطبيق وحدة التحكم، تتم كتابة كافة التعليمات البرمجية إلى ملف Program.cs.

الملف موجود

يتم استخدام طريقة الملف الموجود للتحقق من وجود ملف معين. فلنرى الآن الكود الذي يمكن استخدامه للتحقق مما إذا كان ملف example.txt موجودًا أم لا. أدخل الكود أدناه في ملف Program.cs.

الملف موجود

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";
   
   if (File.Exists(path))
   {
    Console.WriteLine("File Exists");
   }
   Console.ReadKey();
  }
 }
}

Code تفسير:-

  1. أولاً، نقوم بتعيين متغير سلسلة مع المسار إلى ملف example.txt الخاص بنا.
  2. بعد ذلك، نستخدم طريقة File.Exists للتحقق مما إذا كان الملف موجودًا أم لا. إذا كان الملف موجودًا، فسيتم إرجاع القيمة الحقيقية.
  3. إذا حصلنا على قيمة حقيقية وكان الملف موجودًا، فسنكتب الرسالة "الملف موجود" على وحدة التحكم.

عندما يتم تعيين الكود أعلاه، ويتم تنفيذ المشروع باستخدام Visual Studio، سوف تحصل على الإخراج أدناه.

انتاج:-

الملف موجود

من الناتج أعلاه، يمكنك أن ترى أن الأمر File.Exists تم تنفيذه بنجاح، وتم عرض الرسالة الصحيحة في نافذة وحدة التحكم.

File.ReadAlllines

يتم استخدام هذه الطريقة لقراءة جميع الأسطر واحدًا تلو الآخر في الملف. ثم يتم تخزين الأسطر في متغير صفيف سلسلة. لنلقي نظرة على مثال. أدخل الكود أدناه في ملف Program.cs.

File.ReadAlllines

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";

   String[] lines;
   lines = File.ReadAllLines(path);

   Console.WriteLine(lines[0]);
   Console.WriteLine(lines[1]);

   Console.ReadKey();
  }
 }
}

Code تفسير:-

  1. أولاً، نعلن عن متغير مصفوفة السلسلة. سيتم استخدام هذا لتخزين النتيجة التي سيتم إرجاعها بواسطة الأسلوب File.ReadAllLines.
  2. بعد ذلك، نستخدم طريقة File.ReadAllLines لقراءة جميع الأسطر من ملفنا النصي. ثم يتم تمرير النتيجة إلى متغير الخطوط.
  3. وبما أننا نعلم أن ملفنا يحتوي على سطرين فقط، فيمكننا الوصول إلى قيمة متغيرات المصفوفة عبر أمر الأسطر[2] والسطور[0].

عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام البصرية ستوديو، سوف تحصل على الناتج أدناه.

انتاج:-

File.ReadAlllines

من المخرجات، يمكنك أن ترى أن الأمر File.ReadAllLines أعاد كلا السطرين من ملفنا example.txt

ملف. ReadAllText

تُستخدم هذه الطريقة لقراءة جميع الأسطر الموجودة في الملف مرة واحدة. ثم يتم تخزين الأسطر في متغير سلسلة. لنلقي نظرة على مثال. أدخل الكود أدناه في ملف Program.cs.

ملف. ReadAllText

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    String lines;
    lines = File.ReadAllText(path);
    Console.WriteLine(lines);
 
    Console.ReadKey();
   }
  }
}

Code تفسير:-

  1. أولاً، نقوم بالإعلان عن متغير سلسلة يسمى Lines. سيتم استخدام هذا لتخزين النتيجة التي سيتم إرجاعها بواسطة الأسلوب File.ReadAllText.
  2. بعد ذلك، نستخدم طريقة File.ReadAllText لقراءة جميع الأسطر من ملفنا النصي. ثم يتم تمرير النتيجة إلى متغير الخطوط.
  3. يمكننا استخدام طريقة Console.Writeline مباشرة لعرض قيمة متغير الخطوط.

عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام Visual Studio، سوف تحصل على الإخراج أدناه.

انتاج:-

ملف. ReadAllText

من الإخراج، يمكنك أن ترى أن الأمر File.ReadAlltext أعاد كلا السطرين من ملفنا example.txt

نسخة الملف

يتم استخدام الطريقة لعمل نسخة من ملف موجود. لنلقي نظرة على مثال. أدخل الكود أدناه في ملف Program.cs.

نسخة الملف

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   String copypath = @"D:\ExampleNew.txt";

   File.Copy(path,copypath);

   Console.ReadKey();
   }
  }
}

Code تفسير:-

  1. أولاً، نقوم بإعلان متغير سلسلة يسمى path. سيكون هذا هو موقع ملف Example.txt الخاص بنا. سيكون هذا الملف هو ملف المصدر المستخدم لعملية النسخ.
  2. بعد ذلك، نعلن عن متغير سلسلة يسمى Copypath. سيكون هذا هو موقع ملف جديد يسمى ملف exampleNew.txt. سيكون هذا هو الملف الوجهة الذي ستتم فيه كتابة المحتويات من الملف المصدر example.txt.
  3. نقوم بعد ذلك باستدعاء الأسلوب File.Copy لنسخ الملف example.txt إلى الملف exampleNew.txt.

عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام Visual Studio، سيتم نسخ الملف Example.txt إلى ExampleNew.txt.

ملف. حذف

يتم استخدام الطريقة لحذف ملف موجود. لنلقي نظرة على مثال. أدخل الكود أدناه في ملف Program.cs.

ملف. حذف

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   File.Delete(path);

   Console.ReadKey();
   }
  }
}

Code تفسير:-

  1. أولاً، نعلن عن متغير سلسلة يسمى المسار. سيكون هذا هو موقع ملف example.txt الخاص بنا. هذا هو الملف الذي سيتم حذفه
  2. بعد ذلك، نقوم باستدعاء الأسلوب File.Delete لحذف الملف.

عندما يتم تعيين الكود أعلاه، ويتم تشغيل المشروع باستخدام Visual Studio، سيتم حذف الملف Example.txt من محرك الأقراص D.

مرجع طرق الملفات في لغة C#

يلخص الجدول أدناه طرق ملفات C# الرئيسية وما يفعله كل منها.

طريقة الملف الوصف
الملف موجود يتم استخدام طريقة الملف الموجود للتحقق من وجود ملف معين.
File.ReadAlllines يتم استخدام هذه الطريقة لقراءة جميع الأسطر واحدًا تلو الآخر في الملف.
ملف. ReadAllText تُستخدم هذه الطريقة لقراءة جميع الأسطر الموجودة في الملف مرة واحدة.
نسخة الملف يتم استخدام الطريقة لعمل نسخة من ملف موجود.
ملف. حذف يتم استخدام الطريقة لحذف ملف موجود.

الأسئلة الشائعة

تتيح لك عمليات الملفات في لغة C# قراءة الملفات وكتابتها ونسخها وإلحاقها وحذفها. تنتمي معظم الطرق إلى فئة System.IO.File، مثل File.Exists وFile.ReadAllText وFile.Copy وFile.Delete.

استخدم الدالة File.Exists(path)، التي تُرجع القيمة true إذا كان الملف موجودًا، و false إذا لم يكن كذلك. تحقق من ذلك قبل قراءة الملف أو حذفه لتجنب حدوث أخطاء أثناء التشغيل.

تقوم الدالة File.ReadAllLines بإرجاع كل سطر كعنصر من عناصر مصفوفة السلاسل النصية، بينما تقوم الدالة File.ReadAllText بإرجاع محتوى الملف بالكامل كسلسلة نصية واحدة.

قم باستدعاء الدالة File.Copy(sourcePath, destinationPath). تقوم هذه الدالة بإنشاء ملف جديد في الوجهة يحتوي على محتويات الملف المصدر.

قم باستدعاء الدالة File.Delete(path). سيؤدي ذلك إلى حذف الملف نهائياً، لذا تأكد من وجوده باستخدام الدالة File.Exists أولاً لتجنب حدوث خطأ FileNotFoundException.

تقوم المساعدات الذكية مثل GitHub Copilot بإكمال استدعاءات File.ReadAllText و File.Copy و File.Delete تلقائيًا وإنشاء رمز معالجة الملفات try-catch من تعليق قصير يصف المهمة.

نعم. تقوم الأدوات المدعومة بالذكاء الاصطناعي بإنشاء طرق القراءة والكتابة، واقتراح طرق StreamReader أو File، وإضافة معالجة الاستثناءات لجعل التعليمات البرمجية الخاصة بك أكثر أمانًا.

أضف عبارة using System.IO; في بداية برنامجك. يحتوي نطاق اسم System.IO على File وStreamReader وStreamWriter الفئات المستخدمة لمعالجة الملفات.

تلخيص هذه التدوينة بـ: