需要下载web server某些文件夹内的所有文件,但不知道文件名(类型为XML和JPG),文件夹名可知
选用httpwebrequest/httpwebresponse或webrequest/webresponse之类的应该怎么处理那?或者说怎么获得文件夹内的文件名?            string urlBase = "http://www40.brinkster.com";
           string filesFolderUrl = urlBase + "/nyinyithann/newsfeed/images"           HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(filesFolderUrl);
           HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();当filesFolderUrl为文件夹时,httpWebRequest.GetResponse()会报403forbidden错误。在 http://forums.asp.net/p/1162906/1928791.aspx#1928791 上的代码也没调成功,用到了正则表达式。高手请指教。

解决方案 »

  1.   

    实现过这样的功能,是web程序从服务器获取到要下载的文件夹内文件列表。以xml格式传给客户端的c++写的组件。那样子下载的。
    组件在下载过程可以断点续传··比较复杂
      

  2.   

    HttpWebRequest   httpWebRequest   =   (HttpWebRequest)WebRequest.Create(filesFolderUrl); 
    不是合法的路径啊。这个需要服务器端编程,对这个请求进行响应。不然你是访问不了的。你在服务器端实现下载这些文件的功能才行,不然没辙。
      

  3.   

    我们做的东西就是建立web server服务器,客户端通过internet下载文件进行处理所以,不存在偷东西的情况那该怎么做那?
      

  4.   

    那你只要在server端建立文件列表,存成datatable或dataset,
    例:
    1 testFolder 文件夹 0 d:\………\testFolder
    2 testFile 文件 10002345 d:\………\test.JPG
    然后通过配置文件把用户请求的web path转换为server上的物理路径,找到文件后,再用URL转向拼成一个加密的url,例如
    http://www.test.com/……/10101111011101110.tst
    ftp://www.test.com/……/101101010101010.tst
    给用户提供下载即可。
      

  5.   

    private void button1_Click(object sender, EventArgs e)
            {
                FtpListFile("ftp://yourftpaddress", new NetworkCredential("user", "pwd"));
            }        void FtpListFile(string ftp, ICredentials cred)
            {
                FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftp);
                if (cred != null)
                    req.Credentials = cred;
                req.KeepAlive = false;
                req.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                FtpWebResponse rep = (FtpWebResponse)req.GetResponse();
                using (StreamReader sr = new StreamReader(rep.GetResponseStream()))
                {
                    while (true)
                    {
                        string line = sr.ReadLine();
                        if (line == null)
                            break;
                        string[] words = line.Split(' ');
                        //最后一个 string 就是ftp目录下的文件名和子目录名称
                        Console.WriteLine(words[words.Length-1]); 
                    }
                }
                rep.Close();
            }
      

  6.   

    To huwei001982 :谢谢啊,但服务器提供的是http服务不是ftp,所以这个还是不中阿
      

  7.   

    1、获得虚拟目录
    2、通过虚拟目录获得对应的物理路径,通过MapPath获得file的路径,然后实例化一个FileInfo对象
    3、通过该FileInfo对象获得该文件对应的目录DirectoryInfo对象
    4、通过DirectoryInfo对象通过GetFiles获得该目录下的所有文件FileInfo[]
    5、通过前面的虚拟目录和现在获得的文件列表下载即可