如果自己单枪匹马写一个连接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)));