Lister tous les repertoires d'un drive

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 079 fois - Téléchargée 44 fois

Contenu du snippet

Fonction recursive permettant de lister tous les répertoires d'un drive.
Utile pour vérifier la présence d'un fichier sur un disque ou construire un arbre.

Source / Exemple :


Public Function ScanDrive(Root As String)

'Il faut au prealable declarer quelques variables globales :
'AllDirList() as string
'NbDirFind as integer
'Je crois que c tout pour les variables globales, mais vérifiez.
'Pour tester la présence d'un fichier, il suffit de parcourir le tableau et d'utiliser la fonction
'Dir avec comme arguments AllDirList(variable incrementé) et le nom du fichier.
'En plus, vous pouvez utiliser les * et ?

Dim FileRead As String
Dim RootPath As String
RootPath = Root + "\"

        FileRead = Dir(RootPath, vbDirectory)
        Do While FileRead <> ""
            If FileRead <> "." And FileRead <> ".." Then
                If IsOnDirList(RootPath + FileRead) = False Then
                    If (GetAttr(RootPath + FileRead) And vbDirectory) = vbDirectory Then
                        NbDirFind = NbDirFind + 1
                        ReDim Preserve AllDirList(NbDirFind)
                        AllDirList(NbDirFind - 1) = RootPath + FileRead
                        ' only for test : Print #Canal, RootPath + FileRead
                        ScanDrive (RootPath + FileRead)
                        FileRead = Dir(RootPath, vbDirectory)
                    End If
                End If
            End If
            FileRead = Dir
        Loop

end function

Conclusion :


Voila le reccursif est une bonne arme, souvenez vous en.
Au fait, faites attention, si vous voulez simplifier le code, méfiez vous des appels recursif sur DIR !... A bon entendeur, salut.

A voir également

Ajouter un commentaire

Commentaires

Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
C'est quoi la fonction 'IsOnDirList' ???
Et je n'ai pas utilisé la fonction 'DIR' dans mon soirce pour des problèmes de performance, c'est trop long.....
Sinon c'est quoi ton problème exactement car je n'arrive pas à le reproduire?

A+
Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
C'est quoi la fonction 'IsOnDirList' ???
Et je n'ai pas utilisé la fonction 'DIR' dans mon soirce pour des problèmes de performance, c'est trop long.....
Sinon c'est quoi ton problème exactement car je n'arrive pas à le reproduire?

A+
FrostByte
Messages postés
138
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
28 janvier 2006
-
euh hum le mien est un peu plus claire comme source
pcpunch
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
3 -
Cette source ne marche pas, elle est incompléte!!!!! Elle ne fait qu'encombrer le serveur
kerisolde
Messages postés
3
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
31 août 2015
-
Voici un code complet de fonction dir récursive qui fonctionne !
http://www.vbfrance.com/codes/ROUTINE-DIR-RECURSIVE-OBTENIR-LISTE-TOUS-FICHIERS-DANS_53805.aspx

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.