non ho ben capito cosa vuoi fare...
Se vuoi solo visualizzare tutto l'albero di cartelle e sottocartelle in maniera ricorsiva puoi fare così
codice:
    set fso=Server.CreateObject("Scripting.FileSystemObject")
    percorso = "/foto/"


    Function TuaFunzione(percorso)
        dim folder, subfolder, str
        set folder=fso.GetFolder(Server.MapPath(percorso))
        str = "<ul><li>" & Server.HTMLEncode(folder.name) & "</li>"
        for each subfolder in folder.SubFolders
            str = str & TuaFunzione(percorso & subfolder.name & "/")
        next
        str=str & "</ul>"
        TuaFunzione = str
    End Function


    Response.Write TuaFunzione(percorso)
Se vuoi fare una pagina che visualizza il contenuto di una cartella (sottocartelle e file) consentendoti di "navigare" nelle sotto cartelle
codice:
    set fso=Server.CreateObject("Scripting.FileSystemObject")
    percorso = "/foto/"
    cartella = Request("cartella")


    Response.Write "<b>" & Server.HTMLEncode("/" & cartella) & "</b><hr>" & vbCrLf
    set folder = fso.GetFolder(Server.MapPath(percorso & cartella))
    if cartella<>"" then
        href=Left(cartella,InStrRev(cartella,"/",Len(cartella)-1))
        href=Request.ServerVariables("PATH_INFO") & "?cartella=" & Server.URLEncode(href)
        Response.Write "<a href=""" & href & """>[..]</a><br />" & vbCrLf
    end if
    for each ff in folder.SubFolders
        href=cartella & ff.name & "/"
        href=Request.ServerVariables("PATH_INFO") & "?cartella=" & Server.URLEncode(href)
        Response.Write "<a href=""" & href & """>[" & Server.HTMLEncode(ff.name) & "]</a><br />" & vbCrLf
    next
    for each file in folder.Files
        Response.Write "<a href=""" & percorso & cartella & file.name & """ target=""_blank"">" & Server.HTMLEncode(file.name) & "</a><br />" & vbCrLf
    next