• 获取小众ftp服务器指定目录内容列表


    今天获取小众ftp服务器指定目录内容列表时费劲急了。
    1. ///parama url="ftp://x.x.x.x/dir_name"
    2. public string GetFTPDir(string url)
    3. {
    4.         FtpWebRequest reqFtp;
    5.         try
    6.         {
    7.             reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
    8.             reqFtp.KeepAlive = false;
    9.             //reqFtp.UseBinary = true;   //指定ftp数据传输类型为 二进制  
    10.             //reqFtp.Credentials = new NetworkCredential(USERID, PassWord);     //设置于ftp通讯的凭据  
    11.             reqFtp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;      //指定操作方式
    12.             WebResponse response;
    13.             response = reqFtp.GetResponse();  //获取一个FTP响应  
    14.             StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);   //读取响应流  
    15.             string contentHTML = sr.ReadToEnd();    //读取网页的源代码  
    16.             sr.Close();
    17.             return contentHTML;
    18.         }
    19.         catch (Exception ex)
    20.         {
    21.             return ex.Message;
    22.         }
    23.  }

    当访问iis的ftp服务器时没有错误,访问一个小型ftp时报错227,查阅资料后修改第9行为reqFtp.UsePassive = false;

    执行后有了返回,但是为根目录的列表。

    .Net的FtpWebRequest没有改变当前目录操作,而是只能创建时指定文件或目录。百般无奈时,想到url应该是一个文件,目录在自己的下面显示一个“.”表示自己。所以修改url参数为url="ftp://x.x.x.x/dir_name/."。再次执行代码果然通过,不论iis ftp还是小型ftp服务器均通过。

  • 相关阅读:
    仓鼠找sugar(LCA)
    bzoj4481非诚勿扰(期望dp)
    NOIP2011Mayan游戏(模拟)
    [国家集训队]旅游
    NOIP2012疫情控制(二分答案+树上贪心)
    NOIP2017题解
    [SCOI2010]幸运数字(容斥+爆搜)
    [JSOI2008]Blue Mary的战役地图(二分+哈希)
    [湖南集训]谈笑风生(主席树)
    NOIP2016题解
  • 原文地址:https://www.cnblogs.com/bjguanmu/p/6070057.html
Copyright © 2020-2023  润新知