Probleme recursivite

T103 Messages postés 177 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 21 avril 2010 - 25 mars 2008 à 15:11
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 25 mars 2008 à 16:38
Bonjour,

j'utilise une boucle pour visualiser les dossiers et sous dossiers sous ma racine D: :

 Set Fsf = CreateObject("Scripting.FileSystemObject")
    Set objrepInit = Fsf.GetFolder(Chemin)
    Set oSousRep = objrepInit.subfolders


    For Each oSousRep In objrepInit.subfolders
        MsgBox oSousRep.Name
    Next oSousRep

Le probleme c'est qu'il ne me fait pas apparaitre tous mes sous dossiers ???

3 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 mars 2008 à 15:22
Salut,
Pourquoi ne pas continuer l'autre post?

cette ligne devrait etre en commentaire Set oSousRep = objrepInit.subfolders

Que se passe t il alors est ce qu'il en affiche un seul? ou est ce que ca dépend des fois.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 mars 2008 à 15:36
ne pas utiliser FSO :
CreateObject("Scripting.FileSystemObject")

hors VBS

sinon, ca t'affiche là les dossiers de 'Chemin'.
pas les sous dossiers de ces dossiers...

pour cela, te faudra avoir une approche récursive
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
25 mars 2008 à 16:38
 Bonjour à tous,

En vbs, donc avec fso !

Option Explicit
Dim objFso, objRootFolder
Dim strRootPath, strSubFolder, strResult

strRootPath = "D:"

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFso.GetFolder(strRootPath)

Call SearchFolders(objRootFolder)

MsgBox strResult,,"Liste Répertoires et sous-répertoires"

Set objRootFolder = Nothing
Set objFso = Nothing

Sub SearchFolders(ArgFolder)
    For Each strSubFolder In ArgFolder.SubFolders
        On Error Resume Next  ' permission
        Call SelectFolder(strSubfolder)
        Call SearchFolders(strSubfolder)
    Next
End Sub

Sub SelectFolder(ArgFolder)
    strResult = strResult &vbCr& ArgFolder
End Sub

jean-marc
0
Rejoignez-nous