cs_BFR
Messages postés88Date d'inscriptionmardi 30 juillet 2002StatutMembreDernière intervention 1 mars 2008 6 févr. 2004 à 22:45
SALUT
Cela devrai te dépanner ,c'est une fonction récursive
Sub RecurseTree(DossierDepart As String, Chaine As String)
'-Attention le chemin du dossier de depart doit comporter un slash à la fin
On Error Resume Next
'-Déclarations dossiers
Dim intN As Long
Dim intDirectory As Long
Dim strFileName As String
Dim strDirectoryList() As String
'-Déclarations fichiers
Dim PosPoint As String
'-Départ de la recherche
strFileName = LCase(Dir(DossierDepart, vbDirectory))
Do While strFileName <> ""
'-Ignorer le répertoire en cour, le répertoire parent, et
If strFileName <> "." And strFileName <> ".." Then
'-Lire tous les fichiers et les dossiers
If GetAttr(DossierDepart & strFileName) Then
'-Lire si le nom du fichier contient la chaine rechercher
'-Test si cela est bien un fichier
'-Chercher la présence du point de l'extension du fichier
If InStr(strFileName, ".") <> 0 Then
'-Rechercher la chaine et la rajouter à la liste
If InStr(1, strFileName, Chaine, 1) Then List1.AddItem (DossierDepart & strFileName)
End If
intDirectory = intDirectory + 1
ReDim Preserve strDirectoryList(intDirectory)
strDirectoryList(intDirectory) = DossierDepart _
& strFileName
End If
End If
'-Nouveau depart pour la recherche
strFileName = Dir
Loop
'-Traiter récursivement tous les répertoires
For intN = 1 To intDirectory
RecurseTree strDirectoryList(intN) & "", Chaine
Next intN