Código:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "D:\directorio"
Set objFolder = objFSO.GetFolder(objStartFolder)
response.write "<br>"&objFolder.Path&"<br>"&"<br>"
Set colFiles = objFolder.Files
For Each objFile in colFiles
response.write objFile.Name&"<br>"
Next
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
response.write "<br>"&Subfolder.Path&"<br>"&"<br>"
Set objFolder = objFSO.GetFolder(Subfolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
response.write objFile.Name&"<br>"
Next
ShowSubFolders Subfolder
Next
End Sub
pero como dijo Al, ojito con la recursividad, que si hay muchos niveles el servidor se recarga.