从Web目录中获取文件名和目录列表

我想通过http://使用C#从一个Web目录中获取所有文件名和目录列表。

例如:

 Directory.GetFiles(folder)** 

用于从本地目录获取文件列表,就像我想从web目录获取文件列表一样。

 System.IO.Directory.GetFiles(HttpContext.Current.Server.MapPath("~/PortalPage/")) 

好吧 ,我不相信HTTP有一个你可以直接使用的"directory index"

您无法将url传递给Directory.GetFiles方法,此方法将url作为参数物理路径 (如果它当然可访问)。

请查看Server.MapPath方法。

MapPath方法将指定的相对或虚拟路径映射到服务器上的相应物理目录。

路径

指定映射到物理目录的相对或虚拟路径。 如果Path以正向(/)或反斜杠()开头,则MapPath方法返回路径,就好像Path是完整的虚拟路径一样。 如果Path不以斜杠开头,则MapPath方法返回相对于正在处理的.asp文件的目录的路径。

HTTP本身没有任何function来列出文件夹中的FILE内容。 这是不可能的,因为HTTP规范不需要将URL映射到文件夹。 可编程网页的整个基础是基于URL未映射到STATIC文件。

然而。 HTTP协议有很多扩展。 WebDAV是一种用于将HTTP URI映射到某个位置的目录的协议。 在这里查看如何查询WebDAV服务以获取文件夹的内容 。

但据我所知,它无法进行递归查询。

您不能在URL上使用Directory.GetFiles

考虑这个例子:

 string baseURL = "http://download.example.org/export/dump/"; WebClient client = new WebClient(); string content = client.DownloadString(baseURL); 

然后你在里面运行一个循环。