الإرشادات التفصيلية: معالجة الملفات و الدلائل في Visual Basic

توفر هذه المعاينة مقدمة إلى أساسيات ملف الإدخال/الإخراج في Visual Basic . لتوضيح الميزات ، فهو يصف كيفية إنشاء تطبيق صغير يسمى FileExplorer الذي يفحص الملفات النصية داخل الدليل و يوفير معلومات مثل السمات و آخر وقت وصول و أول 80 حرف من الملف . ويتضمن أيضًا الخيار الذي يكتب المعلومات إلى ملف السجل .

ملاحظة

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

إنشاء التطبيق

لبدء مشروع ، قم بإنشاء نموذج يمكن للمستخدمبن منه تحديد دليل ، تحديد ملف من الدليل و من ثم تحدبد المعلومات التي يريدون استردادها حول ذلك الملف.

لإنشاء المشروع

  1. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

    يظهر مربع الحوار مشروع جديد.

  2. في جزء أنواع المشروع، قم بتوسيع #Visual C أو Visual Basic، ثم انقر فوق Windows. انقر فوقتطبيق Windows Forms في جزء القوالب .

  3. وفي المربع الاسم , اكتب FileExplorer لتعيين اسم المشروع ، ثم انقر فوق موافق .

    Visual Studio يضيف إلى المشروع مستكشف الحلول, و يفتح مصمم Windows Forms .

  4. إضافة عناصر التحكم الموجودة في الجدول التالي للنموذج و تعيين القيم المقابلة للخصائص الخاصة بهم .

    الكائن

    Properties

    Value

    TextBox

    الاسم

    Text

    DirectoryTextBox

    الدليل

    Button

    الاسم

    Text

    BrowseButton

    Browse

    Button

    الاسم

    Text

    ExamineButton

    فحص

    ComboBox

    الاسم

    Text

    FilePickComboBox

    تحديد ملف

    CheckBox

    الاسم

    Text

    الدالة: Checked.(

    FileLengthCheckBox

    طول الملف

    True

    CheckBox

    الاسم

    Text

    الدالة: Checked.(

    LastAccessCheckBox

    آخر وقت وصول

    True

    CheckBox

    الاسم

    Text

    الدالة: Checked.(

    SaveCheckBox

    حفظ النتائج

    False

    FolderBrowserDialog

    الاسم

    FolderBrowserDialog1

عرض الدليل الحالي

يحتاج تطبيق FileExplorer لمؤشر بداية . وفقًا لذلك, يستخدم عنصر التحكم DirectoryTextBox TextBox دالة My.Computer.FileSystem.CurrentDirectory لإرجاع و عرض السلسلة التي تمثل المسار الحالي .

لإرجاع الدليل الحالي

  1. إنشاء معالج حدث خاص بـ Form1_Load بالنقر نقراً مزدوجاً فوق النموذج.

    فتح محرر التعليمات البرمجية.

  2. أضف التعليمات البرمجية التالية بحيث يعرض عنصر التحكم DirectoryTextBox TextBox الموقع الحالي .

    txtDirectory.Text = My.Computer.FileSystem.CurrentDirectory
    
  3. تشغيل البرنامج للتأكد من إرجاع المسار الصحيح.

    عنصر التحكم DirectoryTextBox TextBox يعرض الدليل الحالي .

تغيير الدلائل

لأن مستخدم قد يحتاج إلى تحديد الملفات في دليل مختلف ، يستخدم التطبيق نفس الخاصية لتبديل الدلائل . للتغيير إلى دليل مختلف ، بنقر المستخدم فوق عنصر التحكم BrowseButton Button .

لتغيير الدلائل

  1. إنشاء نقرة معالج حدث خاصة بـ BrowseButton بوساطة النقر المزدوج فوق عنصر التحكم في النموذج .

    فتح محرر التعليمات البرمجية.

  2. قم بإضافة التعليمات البرمجية التالية لنقرة معالج الحدث .

    ' 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) لتخصيص النتائج .

لعرض المعلومات المحددة

  1. قم بتعريف المتغيرات التالية في بداية حدث 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 الذي يمكن الاستعلام عنه للحصول على معلومات حول الدليل.

  2. قم بإضافة التعليمات البرمجية التالية إلى نهاية الحدث ExamineButton_Click .

    ' Check last access time.
    If chkLastAccess.Checked = True Then
        lastAccess = thisFile.LastAccessTime
    End If
    

تحدد خاصية LastAccessTime آخر وقت تم فيه تعديل الملف أو الوصول إليه. قيمة Date التي تم إرجاعها تشير إلى تاريخ و وقت إنشاء الملف أو تاريخ آخر تعديل تم عليه .

  1. قم بإضافة التعليمات البرمجية التالية إلى نهاية الحدث ExamineButton_Click .

    ' Check length.
    If chkFileLength.Checked = True Then
        length = thisFile.Length
    End If
    

خاصية Length ، و التي تحدد طول الملف ترجع القيمة Long مع تحديد طول الملف بالبايت .

عرض النتائج

لإكمال الأداء الوظيفي للتطبيق ، يرسل MsgBox تقرير بالمعلومات التي تم جمعها .

لعرض النتائج

  1. في نهاية كشف If الذي يحدد ما إذا كان تم تحديد LastAccessCheckBox CheckBox ، قم بإضافة التالي قبل نهاية End If .

    ' Add to the message box.
    finalString = finalString & stringLastAccess & lastAccess & "." &
      vbCrLf
    
  2. في نهاية كشف If الذي يحدد ما إذا كان تم تحديد FileLengthCheckBox CheckBox ، قم بإضافة التالي قبل نهاية End If .

    ' Add to the message box.
    finalString = finalString & stringlength & CStr(Length) & "." &
      vbCrLf
    
  3. لعرض معلومات الملف ، قم بإضافة التعليمات الرمجية التالية قبل نهاية 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
    

لاختبار التطبيق الخاص بك

  1. في دليل اختيارك قم بإنشاء ملف نصي يدعى test.txt مع الخط الأول التالي :

    "هذا هو أول خط للملف الأول. يفحص تطبيق FileExplorer فقط النص ملفات."

  2. في نفس الدليل قم بإنشاء ملف نصي ثاني يدعى test2.txt مع الخط الأول التالي :

    "هذا هو السطر الأول للملف الثاني يفحص تطبيق FileExplorer فقط النص ملفات."

  3. ابدأ التطبيق.

  4. اكتب مسار صالح و انقر فوقإرسال.

    تظهر الرسالة التالية: "يجب عليك إدخال مسار صالح. إذا تمت محاولة الوصول إلى محرك أقراص مختلف, تذكر تضمين حرف محرك الأقراص."

  5. اكتب مسار الدليل الذي يقوم بتخزين test.txt و انقر إرسال.

    يعرض FilePickComboBox ComboBox الملفات النصية .

  6. حدد test.txt في FilePickComboBox ComboBox . تأكد من تحديد كافة خانات الاختيار، ثم انقر فوق فحص

    يتضمن نموذج نتائج آخر تاريخ وصول و طوله.

  7. حدد test2.txt في FilePickComboBox ComboBox ، و قم بإلغاء تحديد كل خانات الاختبار به ثم انقر فوق فحص.

    تظهر رسالة الخطأ التالية: لا يوجد خانات اختيار لسمة الملف محددة."

  8. حددالوصول أخير و حفظ النتائج و انقر فوقفحص.

    يعرض النموذج نتائج وقت الوصول الأخير.

  9. يغلق FileExplorer.

    نظراً لتحديد اختيار حفظ النتائج ، ينشئ FileExplorer ملف سجل باسم log.txt في نفس الدليل كملفات نصية .

للتحقق من السجل

  • في الدليل الحالي ، افتح log.txt و تأكد أن FileExplorer سجَل المعلومات الصحيحة .

راجع أيضًا:

المرجع

CurrentDirectory

FileSystem