En complément à la lecture de fichiers et de dossiers contenu dans un dossier, voici une façon faire afficher une liste de dossiers et de fichiers sous forme d'arborescence à l'aide d'une fonction récursive.
Voici le code :
<% Dim Root Const SpaceIndent = " "
'A changer pour votre cas à vous Root = Server.MapPath("/")
' Fonction recursive pour l'affichage d'une arborescence Function DrawTree(sRoot, I) Dim FSO, Folder, SubFolder, File ' Instanciation Set FSO = Server.CreateObject("Scripting.FileSystemObject")
' Instanciation set Folder = FSO.getFolder(sRoot)
' Incrementation de l'arborescence - dossiers I = I + 1
' On n'affiche pas les _vti, _derived, _notes (dossiers réservés à IIS), ' mais on affiche tout les autres ' Trouver la position du dernier '\' et vérifier si le caractère suivant est un _ If Mid(sRoot, (Len(sRoot) - Instr(StrReverse(sRoot), "\")+2), 1) <> "_" Then
' Incrementation de l'arborescence - fichiers I = I + 1
Set Folder = FSO.getFolder(sRoot) ' Afficher tout les fichers contenu dans le répertoire courant For Each File in Folder.Files ' Indentation à l'affichage PrintSpaces(I) ' Affichage du fichier Response.Write File.Name & " <br>" Next
' Décrémentation de l'arborescence - fichiers I = I - 1
End If
' Parcourir tout les sous-dossiers du dossier courant for each SubFolder in Folder.SubFolders ' Verifier si le dernier caractère du chemin vers le dossier ' courant est un '\' If Right(sRoot,1) <> "\" Then sRoot = sRoot & "\" End If
' Afficher le dossier courant dans l'arbre Call DrawTree(sRoot & delem & SubFolder.Name, I)
' Décrémentation de l'arborescence I = I - 1 ' Prochain Next
'Destruction des instances Set Folder = Nothing Set FSO = Nothing End Function
'Fonction qui affiche l' indentation Function PrintSpaces(Number) Response.Write Number & " - " For I = 0 to Number Response.Write SpaceIndent next End Function
' Appel de la fonction d'affichage de structure Call DrawTree(Root,-1) %>