الإرشادات التفصيلية: معالجة الملفات و الدلائل في Visual Basic
توفر هذه المعاينة مقدمة إلى أساسيات ملف الإدخال/الإخراج في Visual Basic . لتوضيح الميزات ، فهو يصف كيفية إنشاء تطبيق صغير يسمى FileExplorer الذي يفحص الملفات النصية داخل الدليل و يوفير معلومات مثل السمات و آخر وقت وصول و أول 80 حرف من الملف . ويتضمن أيضًا الخيار الذي يكتب المعلومات إلى ملف السجل .
ملاحظة
قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.
إنشاء التطبيق
لبدء مشروع ، قم بإنشاء نموذج يمكن للمستخدمبن منه تحديد دليل ، تحديد ملف من الدليل و من ثم تحدبد المعلومات التي يريدون استردادها حول ذلك الملف.
لإنشاء المشروع
من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).
يظهر مربع الحوار مشروع جديد.
في جزء أنواع المشروع، قم بتوسيع #Visual C أو Visual Basic، ثم انقر فوق Windows. انقر فوقتطبيق Windows Forms في جزء القوالب .
وفي المربع الاسم , اكتب FileExplorer لتعيين اسم المشروع ، ثم انقر فوق موافق .
Visual Studio يضيف إلى المشروع مستكشف الحلول, و يفتح مصمم Windows Forms .
إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .
الكائن
Properties
Value
الاسم
Text
DirectoryTextBox
الدليل
الاسم
Text
BrowseButton
Browse
الاسم
Text
ExamineButton
فحص
الاسم
Text
FilePickComboBox
تحديد ملف
الاسم
Text
الدالة: Checked.(
FileLengthCheckBox
طول الملف
True
الاسم
Text
الدالة: Checked.(
LastAccessCheckBox
آخر وقت وصول
True
الاسم
Text
الدالة: Checked.(
SaveCheckBox
حفظ النتائج
False
الاسم
FolderBrowserDialog1
عرض الدليل الحالي
يحتاج تطبيق FileExplorer لمؤشر بداية . وفقًا لذلك, يستخدم عنصر التحكم DirectoryTextBox TextBox دالة My.Computer.FileSystem.CurrentDirectory لإرجاع و عرض السلسلة التي تمثل المسار الحالي .
لإرجاع الدليل الحالي
إنشاء معالج حدث خاص بـ Form1_Load بالنقر نقراً مزدوجاً فوق النموذج.
فتح محرر التعليمات البرمجية.
أضف التعليمات البرمجية التالية بحيث يعرض عنصر التحكم DirectoryTextBox TextBox الموقع الحالي .
txtDirectory.Text = My.Computer.FileSystem.CurrentDirectory
تشغيل البرنامج للتأكد من إرجاع المسار الصحيح.
عنصر التحكم DirectoryTextBox TextBox يعرض الدليل الحالي .
تغيير الدلائل
لأن مستخدم قد يحتاج إلى تحديد الملفات في دليل مختلف ، يستخدم التطبيق نفس الخاصية لتبديل الدلائل . للتغيير إلى دليل مختلف ، بنقر المستخدم فوق عنصر التحكم BrowseButton Button .
لتغيير الدلائل
إنشاء نقرة معالج حدث خاصة بـ BrowseButton بوساطة النقر المزدوج فوق عنصر التحكم في النموذج .
فتح محرر التعليمات البرمجية.
قم بإضافة التعليمات البرمجية التالية لنقرة معالج الحدث .
' newPath holds the path the user has entered. Dim newPath = txtDirectory.Text ' Change the location to newPath. My.Computer.FileSystem.CurrentDirectory = newPath
عرض محتويات الدليل في مربع تحرير وسرد
يمكنك استخدام أسلوب My.Computer.FileSystem.GetDirectoryInfo الذي يرجع كائن DirectoryInfo للدليل المحدد ، و ذلك لتمكين التطبيق من عرض محتويات الدليل الحالي. قم باستدعاء أسلوب GetFiles لكائن DirectoryInfo لاسترداد مجموعة من كائنات FileInfo لكل ملف في الدليل . يمكنك استخدام أحرف البدل مع أسلوب GetFiles لتحديد الملفات ذات نقش معين فقط . في هذا المثال، فقط الملفات ذات الملحق txt. تُعاد .
لعرض محتويات الدليل
بعد التعليمات البرمجية المدرجة سابقاً في حدث BrowseButton_Click، أدرج التعليمات البرمجية التالية .
fileList = My.Computer.FileSystem.GetFiles( My.Computer.FileSystem.CurrentDirectory, FileIO.SearchOption.SearchTopLevelOnly, "*.txt") For Each foundFile In fileList lstFilePick.Items.Add(foundFile) Next
تظهر المعلومات التي تم جمعها في FilePickComboBox ComboBox، من حيث يمكنك انتقاء ملف معين لفحصه .
لاختبار التطبيق بتشغيله أولاً في الدليل الذي لا يحتوي أية ملفات txt. و من ثم في دليل يحتوي على أكثر من ملف txt. في المثيل الأول ، يعرض التطبيق رسالة الإعلام بالخطأ المناسبة. في الثانية, يقوم التطبيق بإنشاء قائمة في ComboBox لكل ملفات txt. داخل الدليل المحدد في DirectoryTextBox TextBox .
تمكين المستخدم من تحديد الملف لفحصه
على الرغم من أن عنصر التحكم FilePickComboBox ComboBox يعرض قائمة الملفات في الدليل ، ربما أراد المستخدم تحديد ثم فحص ملف محدد .
لتمكين تحديد ملف معين
قم بإنشاء معالج الحدث الخاص بـ ExamineButton_Click ثم أضف التعليمات البرمجية التالية لتأكيد تحديد الملف .
Dim thisFile = My.Computer.FileSystem.GetFileInfo(CStr(lstFilePick.SelectedItem))
تمكين المستخدم من تحديد أية معلومات سيتم تجميعها
والآن تُعرض تلك الملفات في FilePickComboBox ComboBox ، التعليمات البرمجية الإضافية تتيح للمستخدم إمكانية تحديد المعلومات التي تم الإبلاغ عنها . على سبيل المثال، قد يحتاج أحد المستخدمين إلى معرفة تاريخ آخر وصول للملف . مستخدم آخر قد يريد أيضاً معرفة حجم الملف. يحدد المستخدم أو يمسح خانات الفحص (LastAccessCheckBox, FileLengthCheckBox) لتخصيص النتائج .
لعرض المعلومات المحددة
قم بتعريف المتغيرات التالية في بداية حدث ExamineButton_Click، بعد التعليمات البرمجية المدرجة مسبقًا .
Dim stringlength = "The file's length, in bytes, is: " Dim stringLastAccess = "The file was last accessed on: " Dim lastAccess As Date Dim length As Long Dim firstLine = "" Dim finalString = "" If lstFilePick.SelectedItem Is Nothing Then MsgBox("You must select a file to examine.") Exit Sub End If Dim newName = CStr(lstFilePick.SelectedItem)
أسلوب My.Computer.FileSystem.GetFileInfo يرجع كائن FileInfo الذي يمكن الاستعلام عنه للحصول على معلومات حول الدليل.
قم بإضافة التعليمات البرمجية التالية إلى نهاية الحدث ExamineButton_Click .
' Check last access time. If chkLastAccess.Checked = True Then lastAccess = thisFile.LastAccessTime End If
تحدد خاصية LastAccessTime آخر وقت تم فيه تعديل الملف أو الوصول إليه. قيمة Date التي تم إرجاعها تشير إلى تاريخ و وقت إنشاء الملف أو تاريخ آخر تعديل تم عليه .
قم بإضافة التعليمات البرمجية التالية إلى نهاية الحدث ExamineButton_Click .
' Check length. If chkFileLength.Checked = True Then length = thisFile.Length End If
خاصية Length ، و التي تحدد طول الملف ترجع القيمة Long مع تحديد طول الملف بالبايت .
عرض النتائج
لإكمال الأداء الوظيفي للتطبيق ، يرسل MsgBox تقرير بالمعلومات التي تم جمعها .
لعرض النتائج
في نهاية كشف If الذي يحدد ما إذا كان تم تحديد LastAccessCheckBox CheckBox ، قم بإضافة التالي قبل نهاية End If .
' Add to the message box. finalString = finalString & stringLastAccess & lastAccess & "." & vbCrLf
في نهاية كشف If الذي يحدد ما إذا كان تم تحديد FileLengthCheckBox CheckBox ، قم بإضافة التالي قبل نهاية End If .
' Add to the message box. finalString = finalString & stringlength & CStr(Length) & "." & vbCrLf
لعرض معلومات الملف ، قم بإضافة التعليمات الرمجية التالية قبل نهاية End Sub .
' Add to the message box. finalString &= firstLine & vbCrLf
حفظ النتائج
قد يرغب أحد المستخدمين في حفظ النتائج من examination لملف . وفقًا لذلك, قم بإضافة التعليمات البرمجية التي تتحقق مما إذا كان ملف السجل موجود ، و تنشئ واحد عند الضرورة و ثم تكتب النتائج إلى ملف السجل.
لإنشاء ملف سجل
قم بإضافة التعليمات البرمجية التالية إلى نهاية الحدث ExamineButton_Click .
' Check to see whether results should be saved. If chkSave.Checked = True AndAlso finalString <> "" Then My.Computer.FileSystem.WriteAllText("log.txt", finalString, True) End If
لاختبار التطبيق الخاص بك
في دليل اختيارك قم بإنشاء ملف نصي يدعى test.txt مع الخط الأول التالي :
"هذا هو أول خط للملف الأول. يفحص تطبيق FileExplorer فقط النص ملفات."
في نفس الدليل قم بإنشاء ملف نصي ثاني يدعى test2.txt مع الخط الأول التالي :
"هذا هو السطر الأول للملف الثاني يفحص تطبيق FileExplorer فقط النص ملفات."
ابدأ التطبيق.
اكتب مسار صالح و انقر فوقإرسال.
تظهر الرسالة التالية: "يجب عليك إدخال مسار صالح. إذا تمت محاولة الوصول إلى محرك أقراص مختلف, تذكر تضمين حرف محرك الأقراص."
اكتب مسار الدليل الذي يقوم بتخزين test.txt و انقر إرسال.
يعرض FilePickComboBox ComboBox الملفات النصية .
حدد test.txt في FilePickComboBox ComboBox . تأكد من تحديد كافة خانات الاختيار، ثم انقر فوق فحص
يتضمن نموذج نتائج آخر تاريخ وصول و طوله.
حدد test2.txt في FilePickComboBox ComboBox ، و قم بإلغاء تحديد كل خانات الاختبار به ثم انقر فوق فحص.
تظهر رسالة الخطأ التالية: لا يوجد خانات اختيار لسمة الملف محددة."
حددالوصول أخير و حفظ النتائج و انقر فوقفحص.
يعرض النموذج نتائج وقت الوصول الأخير.
يغلق FileExplorer.
نظراً لتحديد اختيار حفظ النتائج ، ينشئ FileExplorer ملف سجل باسم log.txt في نفس الدليل كملفات نصية .
للتحقق من السجل
- في الدليل الحالي ، افتح log.txt و تأكد أن FileExplorer سجَل المعلومات الصحيحة .