Fonction de recherche de fichiers. c tout simple mais utile

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

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.