Parcourir tous les sous dossiers

Résolu
Signaler
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009
-
Messages postés
83
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
14 décembre 2011
-
Grâce à cette fonction j'affiche dans un composant list mes sousdossier, Mais je n'arrive pas à trouver et à comprendre pour trouver aussi tout les sous sous dossiers etc.
Si quelqu'un pourais me donner une piste :D


      Dim stRep 'Nom du répertoire à parcourir
        Dim K As Integer
        K = 0
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        stRep = "C:\Documents and Settings\FSD.DOMMIND\Bureau\Source a comparer"
        If oFSO.FolderExists(stRep) Then
        For Each oFld In oFSO.GetFolder(stRep).SubFolders
        List.AddItem oFld.Name, K
        K = K + 1
       
 Next

3 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
K est inutile

pour ton probleme, te faut faire une fonction récursive ...
en gros ( a adapter)

Set oFSO = CreateObject("Scripting.FileSystemObject")
AjouterDossier "C:\Documents and Settings\FSD.DOMMIND\Bureau\Source a comparer"

private sub AjouterDossier(byref stRep as string
If oFSO.FolderExists(stRep) Then
List.AddItem stRep
For Each oFld In oFSO.GetFolder(stRep).SubFolders
AjouterDosser oFld.FullPath
Next oFld
End If
End Sub


reste que tu utilises FSO, qui, comme son nom l'indique est destiné au Script.


voir :
http://www.vbfrance.com/code.aspx?ID=43640
Messages postés
79
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
15 mai 2009

Oui j'en ai trouvé une similaire et je vais aussi regarder la tienne.
Je pensse que je vais m'en sortir merci
Messages postés
83
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
14 décembre 2011
1
Salut,

Pas de problème d'emploi avec FSO ( FileScriotingObject),
Mais tu appelles abusivement ton bout de code "fonction"

' fonction qui lit les sous-dossiers, les ajoute à une liste, et repete le traitement sur ceux-ci.
' usage de la Recursivité
function Parcours  (   List ,  K , objDossier ) 
   
    dim oFld

    For Each oFld In objDossier.SubFolders

        // Ajout à la liste
        List.AddItem oFld.Name, K
        K = K + 1      
   
       // recursivité
       call Parcours  ( List , K ,  oFld )
 
   Next

end function

// lancement ::

Dim List ...
Dim stRep 'Nom du répertoire à parcourir
Dim K As Integer
Dim objFolder

K = 0
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = "C:\Documents and Settings\FSD.DOMMIND\Bureau\Source a comparer"
If oFSO.FolderExists(stRep) Then
    set objFolder =  oFSO.GetFolder(stRep)
    call Parcours  (   List ,  K ,  objFolder   )
end if

// A ce stade, List  contient TOUS les sous-dossiers !!!

Enjoy !