12-02-15, 03:29 PM
08-07-15, 10:49 PM
كود :
الزر الاول :
My.Computer.FileSystem.DeleteFile(TextBox1.Text)
الزر الثاني :
Dim O As New OpenFileDialog
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox1.Text = O.FileName
End If09-07-15, 06:19 AM
حذف الملفات هي واحدة من العمليات التي يجب أن نراعي فيها انه و أثناء تنفيذها قد يحدث أخطاء كثيرة. علي سبيل المثال من هذه الاخطاء أو Exception أن الملف المراد حذفه قد يكون مستخدما بواسطة برنامج أخر أو أن الملف غير موجود أصلا أو أن اسم الملف لم يتم كتابته او بمعني أدق اسم الملف عبارة عن Nothing
لذلك و لكي تكتب كود يتم تنفيذه بدون حدوث أخطاء يجب أن تراعي كل هذه الاشياء
و لكي تحذف ملف ما موجود علي جهاز الكمبيوتر عليك تنفيذ الخطوات التالية
1- : تعريف اسم الملف ثم نحدد هل سيتم حذف هذا الملف ب القوة ام لا
لذلك عليك تعريف متغيران كالأتي:
2- : تعريف متغير عبارة عن Array لأنه و غالبا الملف الذي قد نريد حذفه موجود داخل Folder و ربما هذا Folder به ملقات أخري لذلك سنحتاج الي تلك Array لنملأها لاحقا بكل اسماء الملفات الموجودة في Folder الموجود به الملف المراد حذفه
3- : علينا أن نتأكد أن اسم الملف ليس Nothing
4- : لنحاول الأن الحصول علي كل الملفات الموجودة في نفس Folder الموجود به الملف المراد حذفه و أيضا هنا علينا أن نتأكد ان الفهرس أو Folder موجود أصلا
5- : الأن لنحاول حذف الملف وهنا قد نحتاج الي ان نقوم بتغيير File Attributes أيضا و ربما نحتاج الي تكرار عملية الحذف اكثر من مرة لأنه و ربما الملف قد يكون مستخدما بواسطة برنامج أخر
و لأننا قد لا نريد التعامل مباشرة مع FileArrayNames التي تم تعريفها سابقا و التي حصلنا عليها من الخطوة رقم 4 لذلك و من الأفضل أن نأخذ منها نسخة حتي نتعامل معها كما يحلو لنا
و المحصلة النهائية لكل ما سبق سيكون روتين يمكن استخدامه في حذف اي ملف
كل ما عليك الأن هو استخدام الروتين أعلاه و تمرير اسم الملف له لكي يتم حذف الملف
يجب أن لا تنسي أن اسم الملف يجب ان يكون شاملا مكانه أيضا علي الكمبيوتر
لذلك و لكي تكتب كود يتم تنفيذه بدون حدوث أخطاء يجب أن تراعي كل هذه الاشياء
و لكي تحذف ملف ما موجود علي جهاز الكمبيوتر عليك تنفيذ الخطوات التالية
1- : تعريف اسم الملف ثم نحدد هل سيتم حذف هذا الملف ب القوة ام لا
لذلك عليك تعريف متغيران كالأتي:
كود :
Dim fileName As String
Dim deleteByForce As Boolean2- : تعريف متغير عبارة عن Array لأنه و غالبا الملف الذي قد نريد حذفه موجود داخل Folder و ربما هذا Folder به ملقات أخري لذلك سنحتاج الي تلك Array لنملأها لاحقا بكل اسماء الملفات الموجودة في Folder الموجود به الملف المراد حذفه
كود :
Dim fileNames As String() = Nothing3- : علينا أن نتأكد أن اسم الملف ليس Nothing
كود :
If String.IsNullOrEmpty(fileName) Then
Throw New ArgumentNullException("fileName")
End If4- : لنحاول الأن الحصول علي كل الملفات الموجودة في نفس 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 Try5- : الأن لنحاول حذف الملف وهنا قد نحتاج الي ان نقوم بتغيير 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كل ما عليك الأن هو استخدام الروتين أعلاه و تمرير اسم الملف له لكي يتم حذف الملف
يجب أن لا تنسي أن اسم الملف يجب ان يكون شاملا مكانه أيضا علي الكمبيوتر