【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)));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM