Можно перечислить файлы в каталоге, но хотите перечислить файлы во всех каталогах - PullRequest
3 голосов
/ 28 января 2010

У меня есть этот скрипт для отображения всех файлов в каталоге, в котором он находится, но у меня будет каталог, который будет содержать несколько папок с документами в каждой.

Я представляю себе веб-страницу, которая динамически перечисляет все папки по имени, а затем, когда вы щелкаете по ней, она отображает список связанных файлов.

Я хочу сделать это, потому что в этот каталог будут добавлены дополнительные папки и файлы.

Это мой скрипт, который будет работать, ЕСЛИ я поместил его в каждую папку, чтобы он не был полностью динамичным.

<h3>Resources/Documents</h3>
<ul>
    <%
        Set MyDirectory=Server.CreateObject("Scripting.FileSystemObject")
        Set MyFiles=MyDirectory.GetFolder(Server.MapPath("documents/standard_14"))
        For each filefound in MyFiles.files
    %>
    <li>
    <a href="documents/standard_14/<% =filefound.Name %>" target="blank"><% =filefound.Name %></a>
    </li>

    <% Next %>
</ul>

Я совсем не знаком с ASP - любая помощь приветствуется.

1 Ответ

9 голосов
/ 29 января 2010
<% ListFolderContents(Server.MapPath("/path/to/main/folder")) %>
<% sub ListFolderContents(path)

     dim fs, folder, file, item, url

     set fs = CreateObject("Scripting.FileSystemObject")
     set folder = fs.GetFolder(path)

    'Display the target folder and info.

     Response.Write("<h2>"& folder.Name &"</h2>")

     'Display a list of sub folders.

     for each item in folder.SubFolders
                ListFolderContents(item.Path)
     next

     'Display a list of files.
Response.Write("<ul>")
    for each item in folder.Files
       url = MapURL(item.path)
        Response.Write("<li><a href=""" & url & """>" & item.Name & "</a></li>")
    next
        Response.Write("</ul>")
   end sub


   function MapURL(path)

     dim rootPath, url

     'Convert a physical file path to a URL for hypertext links.

     rootPath = Server.MapPath("/")
     url = Right(path, Len(path) - Len(rootPath))
     MapURL = Replace(url, "\", "/")

end function %>
...