Listing de fichiers et répertoires (fonction récursive)

Contenu du snippet

Ce code est inspiré d'un script déja déposé sur le site qui listait de manière récursive les sous-répertoires d'un répertoire. j'ai modifié le script de manière à ce qu'il liste également les fichiers.

Le listing complet est loggué dans un fichier texte.
Ce script peut être utile par exemple si vous souhaitez lister l'ensemble des fichiers de votre ordinateur (par contre, le temps d'exécution sera bien évidement très long...)

Il suffit pour utiliser le script de le lancer à l'endroit où l'on souhaite obtenir le listing des fichiers, sous-fichiers, répertoires et sous-répertoires...

Si l'auteur du script original se reconnait, qu'il me contacte pour que je le remercie et que je le cite. J'espère ne pas l'avoir offensé en ayant repris et adapté son code.

Si ce code est considéré comme étant redondant sur le site, que les admins n'hésitent pas à supprimer mon script.

Cordialement.

Source / Exemple :


'# Liste dans un fichier texte l'ensemble des repertoires, sous repertoires
'# et fichiers contenu dans un dossier.

'# Fonction recursive
Sub listingSousDossiersRecur(objListRep, cheminBranche)

    oFichierTXT.WriteLine("## Entrée dans le répertoire " & cheminBranche)

    '# Listing des fichiers
    Set pFichier  = oFSO.GetFolder(cheminBranche)
    Set cFichiers = pFichier.Files
        
    For Each fichier in cFichiers
        oFichierTXT.WriteLine(cheminBranche & "\" & fichier.Name)
    Next

    '# Listing des sous-dossiers + appel recursif
    For Each oSousRep In objListRep        
        Set objListSousRep = oSousRep.SubFolders
        Call listingSousDossiersRecur(objListSousRep, _
                                      cheminBranche & "\" & oSousRep.Name)
    Next
     
End Sub

Set oFSO = CreateObject("Scripting.FileSystemObject")

'# Pointeur sur le repertoire courant
Set oRepCourant = oFSO.GetFolder(".")

'# Creation du fichier texte
Set oFSO        = CreateObject("Scripting.FileSystemObject")   
Set oFichierTXT = oFSO.CreateTextFile ("Listing_" & oRepCourant.Name & ".txt", _
                                        True)

'# Ecriture du repertoire courant dans le fichier
oFichierTXT.WriteLine("RÉPERTOIRE SCRUTÉ : " & oRepCourant.Path)
oFichierTXT.WriteLine("")

'# Obtention d'une collection contenant l'ensemble des repertoire du dossier
Set oSousRep = oRepCourant.SubFolders

'# Appel d'une fonction recursive qui va lister l'ensemble des dossiers
'# contenu dans chaque sous-dossier
'Call listingSousDossiersRecur(oSousRep, oRepCourant.Name)
Call listingSousDossiersRecur(oSousRep, oRepCourant.Path)

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.