1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
Dim Racine As Boolean
Sub Test()
Dim Hierarchie As String
Racine = True
RecupDossiers "D:\MonDossier1\MonDossier2", Hierarchie
MsgBox Hierarchie
End Sub
Private Sub RecupDossiers(Dossier As String, Retour As String)
Dim Fso As Object
Dim Dos As Object
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim Fichier As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(Dossier) = False Then
Retour = "Aucun sous-dossier !"
Exit Sub
End If
'boucle sur les dossiers
For Each Dos In Fso.GetFolder(Dossier).SubFolders
'recherche les "\" afin de créer un décalage pour la hiérarchie
For I = 1 To Len(Dossier) - 1
If Mid(Dossier, I, 1) = "\" Then
J = J + 1
End If
Next I
'évite les décalages dû aux dossiers parents
If Racine = True Then
K = J
Racine = False
End If
J = J - K
'évite l'erreur des dossiers interdits
On Error Resume Next
'récupère le nom du dossier
Retour = Retour & String(J * 4, "-") & Dos.Name & vbCrLf
'Ici pour la récup des fichiers si nécessaire !!!
''' For Each Fichier In Dos.Files
''' Retour = Retour & String(J * 4 + 2, "-") & "->" & Fichier.Name & vbCrLf
''' Next Fichier
J = 0
'rappel de la proc pour chercher les dossiers enfants
RecupDossiers Dossier & "\" & Dos.Name, Retour
Next Dos
End Sub |
Partager