تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة اثناء البحث عن الملفات
#1
المشكلة اثناء البحث فى برتشن d اريده اثناء البحث ان يستثنى مجلدات النظام لا اعرف هو يبحث فيها ليه اصلا الله المستعان

[attach=config]2598[/attach]


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
الظاهر مسموح فقط لمكافحة الفيروسات بالبحث .. اظن فقط لم اجد حل لها .. حتى لو تكتب On Error Resume Next بتحصل انه تخطى الشيء الكثير.
الرد }}}
تم الشكر بواسطة:
#3
سعود كتب :الظاهر مسموح فقط لمكافحة الفيروسات بالبحث .. اظن فقط لم اجد حل لها .. حتى لو تكتب On Error Resume Next بتحصل انه تخطى الشيء الكثير.
بالفعل انا جربت On Error Resume Next لاكن ذى ما حدرتك قلت بالضبط بتحصل انه تخطى الشيء الكثير

طيب مفيش اى دالة تبحث عن الملفات فى اى برتشن وتكون بنت حلال ملهاش دعوة بمجلدات النظام
الرد }}}
تم الشكر بواسطة:
#4
مدري الكود هذا مضبوط او لا بيشتغل معي فترة ثم يوقف
كود :
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
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله وبركاته

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

#7


بالتوفيق
الرد }}}
تم الشكر بواسطة:
#6
سعود كتب :مدري الكود هذا مضبوط او لا بيشتغل معي فترة ثم يوقف
كود :
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


بالتوفيق

جزاك الله خير
لو امكن شرح بسيط للطريقه لانى مش فاهمها
الرد }}}
تم الشكر بواسطة:
#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

بالتوفيق
الرد }}}
تم الشكر بواسطة:
#8
جزاك الله خيرا وزادك علما وتقوى
وجعلنى واياك من اهل الفردوس
الرد }}}
تم الشكر بواسطة:
#9
طيب هوه مش ممكن عند جلب قائمة باسماء المجلدات اقوم بالتحقق من امكانية الوصول لكل مجلد اذا كان ممكن اضيفه الى القائمة اذا كان غير ممكن اتركه
الرد }}}
تم الشكر بواسطة:



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


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