如何获取Web上文件夹的目录列表?

时间:2010-06-17 17:53:38

标签: c# download

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

    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

由于

3 个答案:

答案 0 :(得分:3)

如果这是您拥有的服务器,则必须使用非新路径(例如“\ myserver \ shared \ path \ on \ driver”)之类的未路径连接到该服务器

如果它不是您的服务器,那么您不能这样做,因为这将是一个巨大的安全风险。问题需要进一步澄清你正在尝试做什么。

答案 1 :(得分:3)

普通HTTP不提供任何执行此操作的机制。即使您已在服务器上启用目录浏览并且未指定默认文档,所有这一切都要告诉Web服务器生成HTML文件列表。您必须解析HTML,它会因服务器而异。

其他协议位于HTTP之上,如WebDAV,它提供了这种功能,但它非常复杂。如果您可以控制服务器端,FTP(或约旦提到的UNC共享)可能是一个更简单的选项。

答案 2 :(得分:1)

根据其他选项,如果服务器不是您自己的。除非他们专门提供服务,否则你不能这样做。

如果它是您自己的,并且是应用程序本地计算机的一部分,那么请继续使用上面显示的DirectoryInfo和FileInfo方法。请注意IIS(可能是?)应用程序池用户的安全需求。

如果它是您自己的,但是远程的,那么您可以编写一个Web服务,以良好的格式提供文件列表,供您在其他服务器/客户端上使用。显然要注意安全。