03-05-13, 08:38 AM
المشكلة اثناء البحث فى برتشن d اريده اثناء البحث ان يستثنى مجلدات النظام لا اعرف هو يبحث فيها ليه اصلا الله المستعان
[attach=config]2598[/attach]
[attach=config]2598[/attach]
سعود كتب :الظاهر مسموح فقط لمكافحة الفيروسات بالبحث .. اظن فقط لم اجد حل لها .. حتى لو تكتب On Error Resume Next بتحصل انه تخطى الشيء الكثير.بالفعل انا جربت On Error Resume Next لاكن ذى ما حدرتك قلت بالضبط بتحصل انه تخطى الشيء الكثير
Sub DirSearch(ByVal sDir As String)
Dim d As String
Dim f As String
' Try
On Error Resume Next
For Each d In Directory.GetDirectories(sDir)
For Each f In Directory.GetFiles(d, txtFile.Text)
Label2.Text = f
lstFilesFound.Items.Add(f)
Next
DirSearch(d)
Next
' Catch excpt As System.Exception
' Debug.WriteLine(excpt.Message)
'MsgBox(excpt.Message)
'End Try
End Sub
سعود كتب :مدري الكود هذا مضبوط او لا بيشتغل معي فترة ثم يوقف
كود :
Sub DirSearch(ByVal sDir As String)
Dim d As String
Dim f As String
' Try
On Error Resume Next
For Each d In Directory.GetDirectories(sDir)
For Each f In Directory.GetFiles(d, txtFile.Text)
Label2.Text = f
lstFilesFound.Items.Add(f)
Next
DirSearch(d)
Next
' Catch excpt As System.Exception
' Debug.WriteLine(excpt.Message)
'MsgBox(excpt.Message)
'End Try
End Sub
sooriaty03 كتب :السلام عليكم ورحمة الله وبركاته
تفضل أخي الكريم
تستطيع الاستفادة من هذا المثال الذي يقوم بالبحث في جميع المجلدات وتستطيع أنت تحديد المجلد المطلوب أو اسم الملف الموجود
#7
بالتوفيق
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ProgressBar1.Style = ProgressBarStyle.Marquee
ProgressBar1.Visible = True
ListBox1.Items.Clear()
'جلب جميع أسماء المجلدات
'وتخرينها داخل القائمة
'ListOfDirectory
GetDirectories("C:\")
ProgressBar1.Style = ProgressBarStyle.Blocks
ProgressBar1.Maximum = ListOfDirectory.Count - 1
'جلب جميع أسماء الملفات
'الموجودة داخل قائمة المجلدات
'ListOfDirectory
GetFiles()
End Sub
Private Sub GetDirectories(ByVal InitialDirectory As String)
'إفراغ قائمة الجلدات
ListOfDirectory.Clear()
'إضافة أول مجلد وهو هنا
'"C:\"
ListOfDirectory.Add(InitialDirectory)
Dim Index As Integer = 0
'حلقة تكرارية تدور على جميع المجلدات الموجودة
'في القائمة لجلب المجلدات الفرعية التي بداخلها
'وإضافتها مرة أخرى إلى القائمة
Do
'هنا عملية الجلب ضمن جملة
'Try
'للابتعاد عن المجلدات التي لايمكن الوصول لها
Try
For Each d As String In Directory.GetDirectories(ListOfDirectory.Item(Index))
ListOfDirectory.Add(d)
Application.DoEvents()
Next
Catch ex As Exception
End Try
Index += 1
'عملية التحقق أننا وصلنا إلى آخر مجلد في القائمة
'فيتم الخروج من الحلقة التكرارية
If Index > ListOfDirectory.Count - 1 Then
Exit Do
End If
Loop
End Sub
Private Sub GetFiles()
'حلقة تكرارية لجلب جميع الملفات الموجودة
'داخل المجلدات الموجودة في قائمة المجلدات
For I = 0 To ListOfDirectory.Count - 1
'جلب الملفات يكون داخل جملة
'Try
'للابتعاد عن أي خطأ محتمل
Try
ListBox1.Items.AddRange(Directory.GetFiles(ListOfDirectory.Item(I)))
Catch ex As Exception
End Try
ProgressBar1.Value = I
Application.DoEvents()
Next
End Sub