zoukankan      html  css  js  c++  java
  • C#Ftp的下载实例

    public  class FTPClient
        {
          private  string ftpServerIP="";//下载的ip
          private string ftpUserID="";  //用户名
          private string ftpPassword=""; //密码
          //带参的构造函数
          public FTPClient(string ftpServerIP, string ftpUserID, string ftpPassword) 
          {
            this.ftpPassword=ftpPassword;
            this.ftpUserID = ftpUserID;
            this.ftpServerIP = ftpServerIP;
          }
          /// <summary>
          /// 下载的方法
          /// </summary>
          /// <param name="filePath">要下载的路径</param>
          /// <param name="fileName">要下载的文件名,如果为空,则代表文件下的全部文件</param>
          public  void Download(string filePath, string fileName)
          {
              FtpWebRequest reqFTP;
    
              try
              {
                  FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);    //文件流暑促文件
    
                  reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileName)); //创建ftpWebRequest
    
                  reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;           //ftp的方法,上传还是下载
    
                  reqFTP.UseBinary = true;              //是否使用二进制
    
                  reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);   //输入用户名和密码
    
                  FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
    
                  Stream ftpStream = response.GetResponseStream();  //获取文件流
    
                  long cl = response.ContentLength; //文件流的长度
    
                  int bufferSize = 2048;
    
                  int readCount;
    
                  byte[] buffer = new byte[bufferSize]; //字节转换
    
                  readCount = ftpStream.Read(buffer, 0, bufferSize);   
       
                      while (readCount > 0)
                      {
                          outputStream.Write(buffer, 0, readCount);
    
                          readCount = ftpStream.Read(buffer, 0, bufferSize); //读取文件
                      }
                  
                  ftpStream.Close();
                  outputStream.Close();
                  response.Close();
                  System.GC.Collect();
              }
              catch (Exception ex)
              {
                //  MessageBox.Show(ex.Message);
              }
          }
        }

    上面是FTp的后台服务端,下面是应用客户端:

    ftpServerIP = "192.168.2.211/Test/ssl/Image";
                ftpUserID = "123456";
                ftpPassword = "123456";
                FTPClient ftpClient = new FTPClient(ftpServerIP, ftpUserID, ftpPassword);
                ftpClient.Download(@"C:\picture", "3201.png");

    客户端可以输入ip,用户名,密码,要下载的路径或者有下载的文件,就可以执行了。如果下载文件为空,则代表下载ip底下的所有文件。

  • 相关阅读:
    app专项测试之稳定性测试-monkey测试
    Mac下Fiddler的安装启动。
    测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)
    mysql如何用sql语句修改表字段?
    VMware虚拟机出现“正在使用中”如何解决?
    Opencv2.1+vs2008生成不依赖编译环境的exe文件
    VS2008在win7下不时出现Microsoft Incremental Linker已停止工作
    没有找到opencv_core231d.dll运行结果不能显示
    Mat类型与IplImage类型之间相互转换
    获取当前可执行文件的路径(绝对路径)
  • 原文地址:https://www.cnblogs.com/shunxiyuan/p/2803195.html
Copyright © 2011-2022 走看看