• 【FTP】C# System.Net.FtpClient库连接ftp服务器(上传文件)


    如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用。

    那就是System.Net.FtpClient,链接地址:https://netftp.codeplex.com

    然后下载该资源,我们就可以使用它的函数了。这里介绍一下如何使用System.Net.FtpClient链接ftp服务器并上传自己文件至服务器。

    千万别忘了添加引用——导入System.Net.FtpClient.dll.

    还有就是 using System.Net.FtpClient;

                using System.Net;

     1         /// <summary>
     2         /// FTP上传文件
     3         /// </summary>
     4         /// <param name="strServer">服务器地址</param>
     5         /// <param name="strUser">用户名</param>
     6         /// <param name="strPassword">密码</param>
     7         /// <param name="Savepath">服务器用于保存的文件夹路径,不是服务器根路径,例如: "/UploadDocumentsSave/"</param>
     8         /// <param name="localpath">本地路径</param>
     9         /// <param name="filetype">文件类型,例如: ".rte"</param>
    10         public void FTPUpload(string strServer, string strUser, string strPassword, string Savepath, string localpath, string filetype)
    11         {
    12                  FtpClient ftp = new FtpClient();
    13                  ftp.Host = strServer;
    14                  ftp.Credentials = new NetworkCredential(strUser, strPassword);
    15                  ftp.Connect();
    16 
    17                  string[] files = Directory.GetFiles(localpath, "*" + filetype);
    18                  if(files.Length!=0)
    19                  {
    20                      foreach (string file in files)
    21                      {
    22                         using (var fileStream = File.OpenRead(file))
    23                         using (var ftpStream = ftp.OpenWrite(Savepath+Path.GetFileName(file)))
    24                         {
    25                             var buffer = new byte[8 * 1024];
    26                             int count;
    27                             while ((count = fileStream.Read(buffer, 0, buffer.Length)) > 0)
    28                             {
    29                                 ftpStream.Write(buffer, 0, count);
    30                             }
    31                         }
    32                     }
    33                       MessageBox.Show("OK");
    34                 }            
    35         }

    如果FTP服务器内没有用于保存的文件夹存在,只有一个根文件夹,那么,第23行就改成:

     using (var ftpStream = ftp.OpenWrite("/"+Path.GetFileName(file)));
  • 相关阅读:
    Javascript校验密码复杂度的正则表达式
    Git合并指定文件到另一个分支
    WebForm SignalR 实时消息推送
    基于SignalR的消息推送与二维码描登录实现
    yarn 错误There appears to be trouble with your network connection. Retrying...
    使用SqlConnectionStringBuilder构造数据库连接字符串
    邮箱核心业务领域建模
    C# NuGet常用命令
    阿里P7架构师是如何解决跨域问题的!你有遇到吗?
    WinForm 之 自定义标题栏的窗体移动
  • 原文地址:https://www.cnblogs.com/lovecsharp094/p/5430973.html
Copyright © 2020-2023  润新知