none
My.Computer.FileSystem.FindInFiles RRS feed

  • Question

  • Bonjour,

    Je suis sous VB2005 Express Edition

    Je cherche à l'aide de if ...then...else
    -Soit afficher la collection de fichiers (contenant le texte recherché) dans une checkbox  
    -Soit afficher une messagebox de non existance(liste vide)
     
    J'arrive à affiché la liste si le texte existe mais je n'arrive pas à affiché la message box correspondante si le texte n'existe pas.
     
    je ne sais pas comment définir si le resultat de ma collection est vide.
     j'utise le My.Computer.FileSytem.FindInFiles

    Ci dessous une partie de mon code si une âme charitable veut bien se penché sur mon cas je la remercie d'avance.....

    ledebutant07
    =======================================

    PublicFunction FindInFiles(ByVal directory AsString, ByVal containsText AsString, ByVal ignoreCase AsBoolean, ByVal searchType As SearchOption) As System.Collections.ObjectModel.ReadOnlyCollection(OfString)

    EndFunction

    Private

    Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click, Button1.Click

    CheckedListBox1.Items.Clear()

     
    Dim
    ListeArchives AsString

    ListeArchives = ("C:\Archives\")
    Dim

    TEXT AsString = Text1.Text

    If

    TEXT = "000000"Then

    Dim value As System.Collections.ObjectModel.ReadOnlyCollection(OfString _
    ) = My.Computer.FileSystem.FindInFiles(ListeArchives, TEXT, False,_ FileIO.SearchOption.SearchTopLevelOnly)

    If value IsNothingThen GoTo Noexist Else

    CheckedListBox1.Items.Clear()

    ForEach name AsStringIn value

    CheckedListBox1.Items.Add(name)

    Next

    Noexist:

    MsgBox("Le Dossier n'existe pas dans la Base de Données", MsgBoxStyle.Information)

    EndIf
    end sub
    ==========================================

    dimanche 5 novembre 2006 10:50

Réponses

  • Bonsoir,

    Si je reprend votre code, ça donne ça :

    Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click, Button1.Click

         CheckedListBox1.Items.Clear()
         Dim
    ListeArchives AsString
         ListeArchives = ("C:\Archives\")
         Dim
    TEXT AsString = Text1.Text

         If TEXT = "000000"Then
              Dim value As System.Collections.ObjectModel.ReadOnlyCollection(OfString _) = My.Computer.FileSystem.FindInFiles(ListeArchives, TEXT, False,_ FileIO.SearchOption.SearchTopLevelOnly)
            If value IsNothing Or value.Count = 0 Then GoTo Noexist Else
                   CheckedListBox1.Items.Clear()
                   ForEach name AsStringIn value
                        CheckedListBox1.Items.Add(name)
                   Next

              Noexist:
                   MsgBox("Le Dossier n'existe pas dans la Base de Données", MsgBoxStyle.Information)

         EndIf

    End Sub

    dimanche 5 novembre 2006 22:55
  • Bonjour,

    j' ai trouvé :

    Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click, Button1.Click

         CheckedListBox1.Items.Clear()
         Dim
    ListeArchives AsString
         ListeArchives = ("C:\Archives\")
         Dim
    TEXT AsString = Text1.Text

         If TEXT = "000000"Then
              Dim value As System.Collections.ObjectModel.ReadOnlyCollection(OfString _) = My.Computer.FileSystem.FindInFiles(ListeArchives, TEXT, False,_ FileIO.SearchOption.SearchTopLevelOnly)
            If value.Count = 0 Then GoTo Noexist Else
                   CheckedListBox1.Items.Clear()
                   ForEach name AsStringIn value
                        CheckedListBox1.Items.Add(name)
                   Next

                   EndIf

    Noexist:
                   MsgBox("Le Dossier n'existe pas dans la Base de Données", MsgBoxStyle.Information)

     

    End Sub

     

    Merci pour votre aide

    cordialement.

     

    ldebutant07


    lundi 6 novembre 2006 17:16

Toutes les réponses

  • Bonjour,

    Vous pouvez tester le nombre d'éléments afin de déterminer le traitement à faire :

    If value IsNothingThen Or value.Count = 0 ...

    dimanche 5 novembre 2006 12:34
  • Merci pour avoir répondu aussi rapidemment.

     

    Pouvez-vous develpper svp je debute et là je suis planté........

     

    Cordialement

     

    ledebutant07

    dimanche 5 novembre 2006 21:23
  • Bonsoir,

    Si je reprend votre code, ça donne ça :

    Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click, Button1.Click

         CheckedListBox1.Items.Clear()
         Dim
    ListeArchives AsString
         ListeArchives = ("C:\Archives\")
         Dim
    TEXT AsString = Text1.Text

         If TEXT = "000000"Then
              Dim value As System.Collections.ObjectModel.ReadOnlyCollection(OfString _) = My.Computer.FileSystem.FindInFiles(ListeArchives, TEXT, False,_ FileIO.SearchOption.SearchTopLevelOnly)
            If value IsNothing Or value.Count = 0 Then GoTo Noexist Else
                   CheckedListBox1.Items.Clear()
                   ForEach name AsStringIn value
                        CheckedListBox1.Items.Add(name)
                   Next

              Noexist:
                   MsgBox("Le Dossier n'existe pas dans la Base de Données", MsgBoxStyle.Information)

         EndIf

    End Sub

    dimanche 5 novembre 2006 22:55
  • Bonjour,

    j' ai trouvé :

    Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click, Button1.Click

         CheckedListBox1.Items.Clear()
         Dim
    ListeArchives AsString
         ListeArchives = ("C:\Archives\")
         Dim
    TEXT AsString = Text1.Text

         If TEXT = "000000"Then
              Dim value As System.Collections.ObjectModel.ReadOnlyCollection(OfString _) = My.Computer.FileSystem.FindInFiles(ListeArchives, TEXT, False,_ FileIO.SearchOption.SearchTopLevelOnly)
            If value.Count = 0 Then GoTo Noexist Else
                   CheckedListBox1.Items.Clear()
                   ForEach name AsStringIn value
                        CheckedListBox1.Items.Add(name)
                   Next

                   EndIf

    Noexist:
                   MsgBox("Le Dossier n'existe pas dans la Base de Données", MsgBoxStyle.Information)

     

    End Sub

     

    Merci pour votre aide

    cordialement.

     

    ldebutant07


    lundi 6 novembre 2006 17:16