2010-06-17 194 views
1

如何获取网上文件夹的目录列表?我正在寻找从网上的文件夹下载一组小文件。我可以使用单个文件轻松完成,但我不确定如何为多个文件执行此操作。如果有类似于下面的代码的东西,但对于网络上的文件夹,我想我可以做到。如何获取网上文件夹的目录列表?

private void button1_Click(object sender, EventArgs e) 
    { 
     DirectoryInfo di = new DirectoryInfo("c:/myFolder"); 
     FileInfo[] rgFiles = di.GetFiles("*.*"); 
     foreach (FileInfo fi in rgFiles) 
     { 
      //Do Something with each of them 
     } 
    } 

该文件夹只是一个从我的网站。例如mysite.com/files

感谢

+0

当2个或更多人为您的最终解决方案做出贡献时,您可以获得答案。而硬币折腾去... – JimDel 2010-06-17 20:12:44

回答

3

正常的HTTP不提供任何机制来做到这一点。即使您在服务器上启用了目录浏览功能,并且未指定默认文档,但所做的只是告诉Web服务器使用HTML生成文件列表。你不得不解析HTML,它会因服务器而异。

有坐像WebDAV的提供这种功能HTTP之上的其他协议,但它是相当复杂的。 FTP(或约旦提到的UNC共享)可能是一个更简单的选项,如果你有控制服务器端的话。

+0

感谢信息乔希。我只需要将它们压缩起来,下载一个文件,然后解压缩它们。听起来更容易。 – JimDel 2010-06-17 20:06:24

3

如果这是你自己的服务器,你将不得不与像新DirectoryInfo的UNC路径连接到它(“\上\驱动MYSERVER \共享\路径\”)

如果不是你的服务器,那么你不能做到这一点,因为这将是一个巨大的安全隐患。问题需要更多的澄清你想要做什么。

+0

我会从我自己的网站获取文件。例如他们可以在www.mysite.com/files。 – JimDel 2010-06-17 18:09:59

+0

好的,你所拥有的代码应该可以工作,你只需要找到正确的路径。如果上面的代码在同一台服务器上运行,则可以执行Server.MapPath()或像上面那样使用完整代码。 – Jordan 2010-06-17 18:35:43

1

按照其他选项,如果服务器是不是你自己的。那么除非他们专门提供了这样的服务,否则你不能这样做。

如果是你自己的,你的应用程序的本地机器的一部分,然后继续和使用的DirectoryInfo和FileInfo的方法,你在上面显示。只需注意IIS(可能?)应用程序池用户的安全需求。

如果这是你自己的,但遥控器,那么你可以编写一个Web服务,它提供了很好的格式的文件列表,为您的其他服务器/客户机上消费。显然要注意安全。

相关问题