English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي لتقنية C#

دليل متقدم لتقنية C#

C# موجه للأتمتة (OOP)

الملفات والدلائل في C#

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

اسم الفئةطريقة الاستخدام
FileFile هي فئة Static توفر مختلف الوظائف مثل نسخ، إنشاء، نقل، حذف، فتح للقراءة أو الكتابة، تشفير أو فك تشفير، التحقق من وجود الملف، إضافة سطور أو نصوص إلى محتوى الملف، الحصول على وقت الولوج الأخير، إلخ.
FileInfoيقدم FileInfo نفس الوظائف مثل الفئة Static File. من خلال كتابة كود يدوي لقراءة أو كتابة البايتات من الملف، يمكنك التحكم بشكل أفضل في عمليات القراءة/الكتابة على الملف.
Directoryالدوال هي فئة Static توفر وظائف مثل إنشاء، نقل، حذف، ووصول إلى الدوال الفرعية.  
DirectoryInfoيقدم DirectoryInfo وصفات لإنشاء، نقل، حذف، ووصول إلى الدوال الفرعية.  
PathPath هي فئة Static توفر بعض الوظائف مثل استرجاع امتداد الملف، تغيير امتداد الملف، استرجاع المسار المادي المطلق، وأيضاً الوظائف المتعلقة بالمسار.

ملف (File)

يحتوي C# على فئة Static File، تستخدم لتنفيذ عمليات i/o على نظام الملفات المادي. تتضمن فئة File الم静态ة العديد من الطرق المفيدة، التي يمكن استخدامها مع أي نوع من الملفات المادية (مثل الملفات الثنائية، ملفات النصوص، إلخ).

استخدام الفئة Static File للقيام ببعض العمليات السريعة على الملفات المادية. لا يُنصح باستخدام فئة File مع العديد من العمليات على العديد من الملفات لمشاكل الأداء. في هذه الحالة، استخدم فئة FileInfo.

الطرق المهمة للفئة Static File

الطريقةطريقة الاستخدام
إضافة جميع الأسطرإضافة سطر إلى الملف، ثم إغلاقه. إذا لم يكن الملف المحدد موجودًا، فإن هذا الطريقة ستقوم بإنشاء ملف، وكتابة السطر المحدد في الملف، ثم إغلاقه.
إضافة جميع النصوصفتح ملف، وإضافة النص المحدد إلى الملف، ثم إغلاقه. إذا لم يكن الملف موجودًا، فإن هذا الطريقة ستقوم بإنشاء ملف، وكتابة النص المحدد في الملف، ثم إغلاقه.
إضافة نصإنشاء StreamWriter، الذي سيضيف نص الترميز UTF-8 إلى الملف الموجود، أو إذا لم يكن الملف المحدد موجودًا، فسيضيف إلى الملف الجديد.
نسخنسخ ملف موجود إلى ملف جديد. لا يسمح بتغطية الملفات الم同名.
إنشاءإنشاء أو تغطية الملف في المسار المحدد.
إنشاء نصإنشاء أو فتح ملف يستخدم الترميز UTF-8 للنصوص.
فك التشفيراستخدام طريقة Encrypt لفك تشفير الملفات المشفرة بواسطة الحساب الحالي.
حذفحذف الملف المحدد.
تشفيرتشفير الملفات، حتى يتمكن فقط الحسابات المستخدمة لتشفير الملفات من فك تشفير هذا الملف.
يوجدتحديد ما إذا كان الملف المحدد موجودًا أم لا.
GetAccessControlالحصول على ملف FileSecurity، الذي يحتوي على قائمة مرجعية للوصول (ACL) لمسار معين.
Moveتحريك الملف المحدد إلى موقع جديد، وتقديم خيار اسم الملف الجديد.
Openفتح FileStream على مسار معين بتصريح القراءة والكتابة.
ReadAllBytesفتح ملف ثنائي، وإدخال محتويات الملف إلى مجموعة البايتات، ثم إغلاق الملف.
ReadAllLinesفتح ملف نصي، قراءة جميع السطور في الملف، ثم إغلاق الملف.
ReadAllTextفتح ملف نصي، قراءة جميع السطور في الملف، ثم إغلاق الملف.
Replaceاستبدال محتويات ملف معين بمحتوى ملف آخر، وإزالة الملف الأصلي، وإيجاد نسخة احتياطية لملف الاستبدال.
WriteAllBytesإنشاء ملف جديد، وكتابة مجموعة البايتات المحددة في الملف، ثم إغلاق الملف. إذا كان الملف المستهدف موجودًا، يتم استبداله.
WriteAllLinesإنشاء ملف جديد، وكتابة مجموعة النصوص المحددة في الملف، ثم إغلاق الملف.
WriteAllTextإنشاء ملف جديد، وكتابة النص المحدد في الملف، ثم إغلاق الملف. إذا كان الملف المستهدف موجودًا، يتم استبداله.

إضافة نصوص السطور

استخدام طريقة AppendAllLines () لإضافة نص متعدد السطور إلى ملف معين، كما هو موضح أدناه.

string dummyLines = "This is first line." + Environment.NewLine +
                    "This is second line." + Environment.NewLine +
                    "This is third line.";
//فتح DummyFile.txt وإضافة السطور. إذا لم يكن الملف موجودًا، يتم إنشاؤه وإضافته.
File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());

إضافة نص

استخدام طريقة File.AppendAllText () لإضافة النص إلى ملف سطر واحد، كما هو موضح أدناه.

//فتح DummyFile.txt وإضافة النص. إذا لم يكن الملف موجودًا، يتم إنشاؤه وإضافته.
File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");

تغطية النص

استخدامFile.WriteAllText()يتم كتابة النص في الملف. يرجى ملاحظة أن هذا لن يضيف النص، بل سيغطي النص الحالي.

    مثال: تغيير النص الموجود

//فتح DummyFile.txt وكتابة النص. إذا لم يكن الملف موجودًا، يتم إنشاؤه وإعادة فتحه.
File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");

مثال: كيفية استخدام فئة File الثابتة لتنفيذ عمليات مختلفة.

//تحقق من وجود الملف في موقع معين
bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); //يعود بالخطأ
//نسخ DummyFile.txt إلى ملف جديد DummyFileNew.txt
File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt");
//الحصول على وقت آخر زيارة للملف 
DateTime lastAccessTime = File.GetLastAccessTime(@"C:\DummyFile.txt");
//الحصول على وقت آخر إصدار للملف
DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt");
//تحريك الملف إلى موقع جديد
File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt");
//فتح الملف وإرجاع FileStream لقراءة البايتات من الملف
FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate);
//فتح الملف وإرجاع StreamReader لقراءة النص من الملف
StreamReader sr = File.OpenText(@"D:\DummyFile.txt");
    
//حذف الملف
File.Delete(@"C:\DummyFile.txt");

لذلك، من السهل التعامل مع الملفات الفيزيائية باستخدام فئة File الثابتة. ولكن، إذا كنت ترغب في مزيد من المرونة، يمكنك استخدام فئة FileInfo. كما يمكن التعامل مع المجلدات الفيزيائية باستخدام فئة Directory الثابتة.

تذكر النقاط الرئيسية

  1. File هي صف ثابت، يمكن استخدامها لقراءةكتابة من الملفات المادية بكمية أقل من الكود.

  2. تقدم فئة File الثابتة ميزات مثل إنشاء، قراءةكتابة، نسخ، نقل، حذف، إلى الملفات المادية.

  3. تقدم فئة Directory الثابتة ميزات مثل إنشاء، نسخ، نقل، حذف، إلى الدلائل المادية بكمية أقل من الكود.

  4. تقدم فئات FileInfo و DirectoryInfo نفس الميزات التي تقدمها فئات File و Directory الثابتة.