Lister tous les repertoires d'un drive

0/5 (5 avis)

Snippet vu 5 432 fois - Téléchargée 47 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
kerisolde Messages postés 3 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 31 août 2015
30 nov. 2011 à 16:34
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
pcpunch Messages postés 1247 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
20 août 2003 à 17:38
Cette source ne marche pas, elle est incompléte!!!!! Elle ne fait qu'encombrer le serveur
FrostByte Messages postés 138 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 28 janvier 2006
19 juin 2002 à 17:06
euh hum le mien est un peu plus claire comme source
Almandric Messages postés 31 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 12 août 2003
18 juin 2002 à 20:15
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
18 juin 2002 à 20:14
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+

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.