تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حذف ملف
#1
ارجو المساعدة
كيفية البحث عن ملف مثلا exe وبعد ذلك حذف
الرد }}}
تم الشكر بواسطة:
#2
كود :
الزر الاول :  
 My.Computer.FileSystem.DeleteFile(TextBox1.Text)


الزر الثاني :
Dim O As New OpenFileDialog
       If O.ShowDialog = Windows.Forms.DialogResult.OK Then
           TextBox1.Text = O.FileName
       End If
الرد }}}
تم الشكر بواسطة:
#3
حذف الملفات هي واحدة من العمليات التي يجب أن نراعي فيها انه و أثناء تنفيذها قد يحدث أخطاء كثيرة. علي سبيل المثال من هذه الاخطاء أو Exception أن الملف المراد حذفه قد يكون مستخدما بواسطة برنامج أخر أو أن الملف غير موجود أصلا أو أن اسم الملف لم يتم كتابته او بمعني أدق  اسم الملف عبارة عن Nothing

لذلك و لكي تكتب كود يتم تنفيذه بدون حدوث أخطاء يجب أن تراعي كل هذه الاشياء

و لكي تحذف ملف ما موجود علي جهاز الكمبيوتر عليك تنفيذ الخطوات التالية

1- : تعريف اسم الملف ثم نحدد هل سيتم حذف هذا الملف ب القوة ام لا
لذلك عليك تعريف متغيران كالأتي:

كود :
Dim fileName As String
Dim deleteByForce As Boolean

2- : تعريف متغير عبارة عن Array لأنه و غالبا الملف الذي قد نريد حذفه موجود داخل Folder و ربما هذا Folder به ملقات أخري لذلك سنحتاج الي تلك  Array لنملأها لاحقا بكل اسماء الملفات الموجودة  في Folder الموجود به الملف المراد حذفه

كود :
Dim fileNames As String() = Nothing

3- : علينا أن نتأكد أن اسم الملف ليس Nothing



كود :
If String.IsNullOrEmpty(fileName) Then
           Throw New ArgumentNullException("fileName")
       End If

4- : لنحاول الأن الحصول علي كل الملفات الموجودة في نفس Folder  الموجود به الملف المراد حذفه و أيضا هنا علينا أن نتأكد ان الفهرس أو Folder موجود أصلا

كود :
Try
           Dim directoryName As String = System.IO.Path.GetDirectoryName(fileName)
           If Not System.IO.Directory.Exists(directoryName) Then
               Return
           End If

           ' search for the file
           fileNames = IO.Directory.GetFiles(fileName, IO.Path.GetFileName(fileName))
       Catch ex As Exception When TypeOf ex Is IO.DirectoryNotFoundException AndAlso TypeOf ex Is IO.FileNotFoundException
           Return
       End Try

5- : الأن لنحاول حذف الملف وهنا قد نحتاج الي ان نقوم بتغيير  File Attributes أيضا و ربما نحتاج الي تكرار عملية الحذف اكثر من مرة لأنه و ربما الملف قد يكون مستخدما بواسطة برنامج أخر

و لأننا قد لا نريد التعامل مباشرة مع FileArrayNames التي تم تعريفها سابقا و التي حصلنا عليها من الخطوة رقم 4 لذلك و من الأفضل أن نأخذ منها نسخة حتي نتعامل معها كما يحلو لنا

كود :
       Dim fileArray As String() = fileNames

       For i As Integer = 0 To fileArray.Length - 1
           Dim path As String = fileArray(i)
           ' repeat the process and set the files attributes
           For count As Integer = 0 To 9
               Try
                   If System.IO.File.Exists(path) Then
                       System.IO.File.SetAttributes(fileName, System.IO.FileAttributes.Normal)
                   End If
                   Exit Try
               Catch ex As Exception When TypeOf ex Is System.IO.DirectoryNotFoundException AndAlso TypeOf ex Is System.IO.FileNotFoundException AndAlso Not force AndAlso count = 9
                   Throw
                   System.Threading.Thread.Sleep(1000)
               End Try
           Next

           ' repeat the process to delete the file
           For index As Integer = 0 To 9
               Try
                   System.IO.File.Delete(path)
                   Exit Try
               Catch ex As Exception When TypeOf ex Is System.IO.DirectoryNotFoundException AndAlso TypeOf ex Is System.IO.FileNotFoundException AndAlso Not force AndAlso index = 9
                   Throw
                   System.Threading.Thread.Sleep(1000)
               End Try
           Next

       Next


و المحصلة النهائية لكل ما سبق سيكون روتين يمكن استخدامه في حذف اي ملف

كود :
  Public Sub DeleteFile(fileName As String, force As Boolean)

       Dim fileNames As String() = Nothing

       If String.IsNullOrEmpty(fileName) Then
           Throw New ArgumentNullException("fileName")
       End If

       Try
           Dim directoryName As String = System.IO.Path.GetDirectoryName(fileName)
           If Not System.IO.Directory.Exists(directoryName) Then
               Return
           End If

           ' search for the file
           fileNames = IO.Directory.GetFiles(fileName, IO.Path.GetFileName(fileName))
       Catch ex As Exception When TypeOf ex Is IO.DirectoryNotFoundException AndAlso TypeOf ex Is IO.FileNotFoundException
           Return
       End Try

       Dim fileArray As String() = fileNames

       For i As Integer = 0 To fileArray.Length - 1
           Dim path As String = fileArray(i)
           ' repeat the process and set the files attributes
           For count As Integer = 0 To 9
               Try
                   If System.IO.File.Exists(path) Then
                       System.IO.File.SetAttributes(fileName, System.IO.FileAttributes.Normal)
                   End If
                   Exit Try
               Catch ex As Exception When TypeOf ex Is System.IO.DirectoryNotFoundException AndAlso TypeOf ex Is System.IO.FileNotFoundException AndAlso Not force AndAlso count = 9
                   Throw
                   System.Threading.Thread.Sleep(1000)
               End Try
           Next

           ' repeat the process to delete the file
           For index As Integer = 0 To 9
               Try
                   System.IO.File.Delete(path)
                   Exit Try
               Catch ex As Exception When TypeOf ex Is System.IO.DirectoryNotFoundException AndAlso TypeOf ex Is System.IO.FileNotFoundException AndAlso Not force AndAlso index = 9
                   Throw
                   System.Threading.Thread.Sleep(1000)
               End Try
           Next

       Next

   End Sub

كل ما عليك الأن هو استخدام الروتين أعلاه و تمرير اسم الملف له لكي يتم حذف الملف
يجب أن لا تنسي أن اسم الملف يجب ان يكون شاملا مكانه أيضا علي الكمبيوتر
الرد }}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم