Fonction de recherche de fichiers. c tout simple mais utile

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 080 fois - Téléchargée 69 fois

Contenu du snippet

Ben voila, vous foutez 3 controles sur une feuille avec les noms indiqués qui serviront qu'a ca, et vous appelez la fonction recherche et vous avez les resultats

Source / Exemple :


Public Sub Recherche(Dossier As String, Paramètre As String)

'masque les controles, c plus rapide
Sousdossiers.Visible = False
Fichiers.Visible = False
Dossiers.Visible = False

Dossiers.Path = Dossier

'regarde si le parametre défini une recherche par extension ou par nom
If Mid(Paramètre, 1, 2) = "*." Then Fichiers.Pattern = Extension Else Fichiers.Pattern = "*.*"

NbrFichiers = 0
Do
DoEvents
    For n = 0 To Dossiers.ListCount - 1   'ajoute les sous repertoires dans sousdossiers
        Sousdossiers.AddItem (Dossiers.List(n))
    Next n
        For Testfichier = 0 To Fichiers.ListCount - 1
        If NbrFichiers >= 10000 Then Exit Sub 'ne renvoie que les 10 000 premiers résultats
                                              'c bien assez!!!
            If Right(Fichiers.Path, 1) <> "\" Then Sl = "\" Else Sl = "" 'slash ou pas dans le chemin d'acces
            'regarde si ya des fichiers qui correspondent au critere de recherche
            'REMARQUE: les fichiers qui ont le meme debut de nom que le paramètre son considéré comme des résultats
            If (Mid(Paramètre, 1, 2) = "*.") Or Mid(Fichiers.List(NbrFichiers), 1, Len(Paramètre)) = Paramètre Then
            Chemins(NbrFichiers) = Fichiers.Path & Sl & Fichiers.List(Testfichier)
            Taille(NbrFichiers) = (FileLen(Chemins(NbrFichiers)) / 1024)
            
       'POUr afficher les fichiers trouvés au fur et a mesure, faut le faire ICI
    If Chemins(NbrFichiers) <> "" Then Print Chemins(NbrFichiers) & "  Taille: " & Taille(NbrFichiers) & "Ko"
            
            NbrFichiers = NbrFichiers + 1
            End If
          
    
        Next Testfichier
        Dossiers.Path = Sousdossiers.List(0)
       If Sousdossiers.ListCount > 0 Then Sousdossiers.RemoveItem 0 Else Exit Do
If NbrFichiers >= 10000 Then Exit Do 'ne renvoie que les 10 000 premiers résultats
                                    'c bien assez!!!
Loop
End Sub

A voir également

Ajouter un commentaire

Commentaires

fou volant13
Messages postés
55
Date d'inscription
vendredi 29 juin 2001
Statut
Membre
Dernière intervention
2 février 2002
-
Si vous voulez utiliser directement la fonction, il vaut mieux utiliser l'ocx que j'ai fait. Il suffit d'incruster le controle sur votre feuille et de l'utiliser tout simplement.
Je crois que la syntaxe est Recherche,dossier,paramètre(soit le nom, soit l'extension).
http://www.vbfrance.com/article.aspx?Val=2914
Bon comme ca fait 1an que j'ai pas touché a Vb et que je l'ai désinstallé, si vous arrivez pas a comprendre le code malgré les commentaires, je peux pas vous aider, vu que je peux plus lire mes sources...
lucky2222
Messages postés
92
Date d'inscription
dimanche 14 juillet 2002
Statut
Membre
Dernière intervention
2 octobre 2006
-
desole, je n'ai pas su exploiter ta source pour l'incorporer a un de mes programe pourtant il m'interresse!
j'ai ici sur vb source un lanceur de programe pour cd, et je cherche justement a ce que la liste de fichier exe aparesse dans l'interface de mon programe, les fichier qu'ils soit au meme rang au dans des sous repertoire! mais la, je n'ai rien capté!
fou volant13
Messages postés
55
Date d'inscription
vendredi 29 juin 2001
Statut
Membre
Dernière intervention
2 février 2002
-
dossier est un dirlist,
sousdossier est une listbox
fichier est un filelistbox
Désolé je l'avais pas mis.
VB6Boss
Messages postés
71
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
15 juin 2002
-
Et c quel genre de controle on fout sur cette feuille ?????????????????
********************************************************************

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.