Lister tous les repertoires d'un drive

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

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.