代码之家  ›  专栏  ›  技术社区  ›  Brad

可以列出目录中的文件,但要列出所有目录中的文件

  •  3
  • Brad  · 技术社区  · 15 年前

    我有这个脚本来显示脚本所在目录中的所有文件,但是我有一个包含多个文件夹的目录,每个文件夹中都有文档。

    我设想的是一个动态列出所有文件夹的网页,按其名称,然后单击它,它会显示链接的文件列表。

    我想这样做,因为这个目录将添加其他文件夹和文件。

    这是我拥有的脚本,如果我把它放在每个文件夹中,它就可以工作,所以它不是完全动态的。

    <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 回复  |  直到 13 年前
        1
  •  9
  •   Brad    15 年前
    <% 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 %>