English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يقدم Class FileInfo نفس الوظائف مثل Class File الثابتة، ولكن يمكنك الحصول على مزيد من التحكم في عمليات القراءة والكتابة على الملف من خلال كتابة كود يدوي لقراءة أو كتابة أوقات البيانات من الملف.
الخصائص | الاستخدام |
---|---|
Directory | الحصول على مثيل دليل الأب. |
DirectoryName | الحصول على سلسلة تمثل مسار الدليل الكامل. |
Exists | الحصول على قيمة تشير إلى ما إذا كان الملف موجودًا. |
Extension | الحصول على سلسلة تمثل جزء التوسع في الملف. |
FullName | الحصول على مسار كامل للدليل أو الملف. |
IsReadOnly | الحصول أو تعيين قيمة تحدد ما إذا كان الملف قارئًا فقط. |
LastAccessTime | الحصول أو تعيين وقت الوصول إلى الملف أو الدليل الحالي آخر مرة. |
LastWriteTime | الحصول أو تعيين وقت كتابة الملف أو الدليل الحالي آخر مرة. |
Length | الحصول على حجم الملف الحالي (بأوكتيت). |
Name | الحصول على اسم الملف. |
الطريقة | الاستخدام |
---|---|
AppendText | أنشئ StreamWriter، وأضف نصًا إلى ملف المثال الحالي الذي يمثلهFileInfo. |
CopyTo | استنساخ ملف موجود إلى ملف جديد، دون السماح بتحديد الملف الموجود. |
Create | أنشئ ملف. |
CreateText | أنشئ StreamWriter لتحرير نص جديد. |
Decrypt | استخدام طريقة Encrypt لفك تشفير الملفات المشفرة من قبل الحساب الحالي. |
Delete | حذف الملف المحدد. |
Encrypt | تشفير الملف، بحيث يمكن فك تشفير الملف فقط من قبل الحسابات المستخدمة لتشفير الملف. |
GetAccessControl | الحصول على FileSecurityobject، الذي يحتوي على إدخالات قائمة التحكم في الوصول (ACL) للملف المحدد. |
MoveTo | انقل الملف المحدد إلى موقع جديد، وقدم خيار اسم الملف الجديد. |
Open | افتح ملفًا في نمط FileMode المحدد. |
OpenRead | أنشئStreamFile قراءة فقط. |
OpenText | أنشئStreamReader بت编码UTF8، يمكنه قراءة من ملف نصي موجود. |
OpenWrite | أنشئStreamFile مكتوب فقط. |
Replace | استبدل محتوى ملف المحدد باستخدامFileInfo الحالي، حذف الملف الأصلي، وأنشئ نسخة احتياطية للملف المتبادل. |
ToString | يستخدم شكل السلسلة لتقديم المسار. |
يظهر المثال التالي كيفية قراءة البايتات يدويًا من الملف ثم تحويلها إلى نص باستخدام ترميز UTF8:}
مثال: قراءة الملف باستخدام كائن FileInfo
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //إنشاء مصفوفة بيتات بحجم نفس حجم FileStream byte[] fileBytes = new byte[fs.Length]; //تحديد مؤشر لتحديد عدد البايتات التي سيتم قراءتها. يتم تقليل المؤشر عند قراءة كل بيت int numBytesToRead = (int)fileBytes.Length; //مؤشر يحدد عدد البايتات التي تم قراءتها int numBytesRead = 0; //تكرار حتى قراءة جميع البايتات من FileStream while (numBytesToRead > 0) { int n = fs.Read(fileBytes, numBytesRead, numBytesToRead); if (n == 0) break; numBytesRead += n; numBytesToRead -= n; } //بعد قراءة جميع البايتات من FileStream، يمكنك تحويلها إلى نص باستخدام ترميز UTF8 string filestring = Encoding.UTF8.GetString(fileBytes);
كما يظهر الكود أعلاه، يجب عليك كتابة الكثير من الكود لتتمكن من قراءة/كتابة النصوص باستخدام FileSream، بينما يمكنك إكمال نفس العمليات القراءة/كتابة بسهولة باستخدام StreamReader و StreamWriter.
يظهر المثال التالي كيف يمكن لـ StreamReader جعل قراءة النصوص من الملف سهلة:
مثال: قراءة الملف باستخدام StreamReader
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read); //تأسيس كائن StreamReader باستخدام كائن FileStream الذي سيتم عليه العمل StreamReader sr = new StreamReader(fs); //استخدام طريقة ReadToEnd لقراءة جميع المحتويات من الملف string fileContent = sr.ReadToEnd(); //تحديد بعد إغلاق كائن StreamReader sr.Close(); fs.Close();
لاحظ أن fi.Open() يحتوي على ثلاثة معلمات:
المعدل الأول FileMode هو لإنشاء وإفتاح الملف (إذا لم يكن موجودًا);
المعدل الثاني FileAccess هو عملية القراءة؛
المعدل الثالث هو مشاركة الملف مع المستخدمين الآخرين لقراءته عند فتح الملف.
يوضح هذا المثال كيف يمكن لـ StreamWriter جعل كتابة النصوص في الملف أسهل:
مثال: استخدامه StreamWriter لتحرير النصوص في الملف
//为指定路径创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开文件进行读\写 FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read ); //创建StreamWriter对象以将字符串写入FileSream StreamWriter sw = new StreamWriter(fs); sw.WriteLine("خط آخر من streamwriter"); sw.Close();
لا يمكن تنفيذ القراءة والكتابة على نفس FileStream في نفس الوقت. إذا كنت قد بدأت في قراءة الملف، فأنشئ FileStream جديدًا لكتابة نفس الملف، مثلما يلي:
مثال: StreamReader و StreamWriter
//为DummyFile.txt创建FileInfo对象 FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //打开DummyFile.txt进行读取操作 FileStream fsToRead = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite , FileShare.ReadWrite); //打开DummyFile.txt进行写操作 FileStream fsToWrite = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //获取StreamReader StreamReader sr = new StreamReader(fsToRead); //使用StreamReader对象读取所有文本 string fileContent = sr.ReadToEnd(); sr.Close(); //获取StreamWriter StreamWriter sw = new StreamWriter(fsToWrite); //كتابة بعض النصوص باستخدام StreamWriter sw.WriteLine("خط آخر من streamwriter"); sw.Close(); //إغلاق جميع Stream objects fsToRead.Close(); fsToWrite.Close();
لذلك، يمكنك استخدام FileInfo،StreamReader و StreamWriter للقراءة/الكتابة في الملفات المادية.