Fonction Dir récursive

cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010 - 6 févr. 2004 à 21:34
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010 - 23 févr. 2004 à 18:36
Voila je cherche le moyen de liste tout les fichiers d'un repertoire et ses sous répertoire avec la fonction Dir.

Car la sa n'affiche que le repertoire courant
Dim Nom As String

Nom = Dir("C:\windows\*ini")

Do While Nom <> ""
List1.AddItem ("C:\windows"& Nom

Nom = Dir
DoEvents
Loop


Je remercie tout ceu ki prendront le temp de repondre a ma kestion.

5 réponses

cs_BFR Messages postés 88 Date d'inscription mardi 30 juillet 2002 Statut Membre Derniè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

End Sub

A++ BFR
0
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
6 févr. 2004 à 23:18
Trop merci sa marche nikel ;)
0
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
21 févr. 2004 à 17:18
Le probleme de ton Sub c'est qu'il existe aussi des fichiers sans extension et a partir de la sa bug.

Sinon sa dechire
0
cs_BFR Messages postés 88 Date d'inscription mardi 30 juillet 2002 Statut Membre Dernière intervention 1 mars 2008
23 févr. 2004 à 10:13
C'est exact mais il n'a pas été conçu pour ça,ce n'etait qu'une base de départ pour ce que tu compte dévelloper
A++ BFR
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
23 févr. 2004 à 18:36
ouais c vrai merci ;) , d'ailleur sa m'a appris bocoup.
0
Rejoignez-nous