Une page ASP pour explorer le contenu d'un répertoire
Comment envoyer sur le Web une page qui permette d'accéder à tous les fichiers contenus dans un
répertoire et dans ses sous-répertoires (et sous-sous-répertoires etc...) ?
Il suffit de créer une page arbo.asp qui balaie le répertoire dont le nom est
transmis par la chaine : arbo.asp?rep=toto va afficher sur la page tous les répertoires et fichiers
contenus dans le répertoire toto.
Les noms de fichiers sont assortis de liens pointant vers lesdits fichiers.
En cliquant sur les noms des sous-répertoires, on doit pouvoir accéder à leur contenu.
Il suffit d'attacher au répertoire truc un lien pointant vers arbo.asp?rep=truc, ou plutôt vers
arbo.asp?rep=toto/truc (toto est le nom transmis par la chaîne de la page asp en cours et toto le nom
du sous-répertoire sur lequel on clique).
Le texte du code de la page arbo.asp est présenté ci-après :
<%@ LANGUAGE="VBSCRIPT" %>
<HTML><BODY><DIR>
<%
rep=request.querystring("rep")
'titre (le nom du répertoire)
response.write("<BR><BR><U><B><FONT SIZE=4 COLOR='blue'>" & rep & "</FONT></B></U><BR><BR>")
'dc le répertoire, nbf les fichiers qu'il contient, nbff les sous-répertoires
set ft=createobject("scripting.filesystemobject")
set dc=ft.getfolder("E:/Jac/" & rep)
set nbf=dc.Files
set nbff=dc.SubFolders
'sous-répertoires
For each df in nbff
response.write("<A HREF='http://serv/Jac/toto/arbo.asp?rep=" & rep & "/" & df.name & "'><B><FONT COLOR='black'> + ")
response.write(df.name & "</FONT></B></A><BR>")
Next
response.write("<BR>")
'fichiers
For each d in nbf
if right(d.name,4)<>".asp" then
response.write("<A HREF='http://serv/Jac/" & rep & "/" & d.name & "' target='_blank'><FONT COLOR='blue'>" & left(d.name,len(d.name)-4) & "</FONT></A><BR>")
end if
Next
set ft=nothing
set dc=nothing
set nbf=nothing
set nbff=nothing
%>
</DIR></BODY></HTML>
L'utilisateur va pouvoir, par simple clic sur les noms de répertoires,
s'enfoncer aussi profondément qu'il le souhaite dans l'arborescence des
sous-répertoires de toto, pour accéder aux fichiers qu'ils contiennent.