程序连接ftp 怎么写

运维螺丝钉 2019-02-21 10:59:39
程序连接ftp 怎么写,有哪位有爱心的大神级高手,提供一下思路或现成的代码

...全文
290 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
运维螺丝钉 2019-03-11
  • 打赏
  • 举报
回复
谢谢了,大神的帮助
rococor 2019-03-08
  • 打赏
  • 举报
回复
一个用C#写的代码,你看是否能用 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.FtpClient; using System.Text; using System.Threading.Tasks; using System.IO; namespace FTP_Client { public class FTPConnection { public FTPConnection() { } /// <summary> /// 连接FTP服务器函数 /// </summary> /// <param name="strServer">服务器IP</param> /// <param name="strUser">用户名</param> /// <param name="strPassword">密码</param> public bool FTPIsConnected(string strServer, string strUser, string strPassword) { using (FtpClient ftp = new FtpClient()) { ftp.Host = strServer; ftp.Credentials = new NetworkCredential(strUser, strPassword); ftp.Connect(); return ftp.IsConnected; } } /// <summary> /// FTP下载文件 /// </summary> /// <param name="strServer">服务器IP</param> /// <param name="strUser">用户名</param> /// <param name="strPassword">密码</param> /// <param name="Serverpath">服务器路径,例子:"/Serverpath/"</param> /// <param name="localpath">本地保存路径</param> /// <param name="filetype">所下载的文件类型,例子:".rte"</param> public bool FTPIsdownload(string strServer, string strUser, string strPassword,string Serverpath, string localpath, string filetype) { FtpClient ftp = new FtpClient(); ftp.Host = strServer; ftp.Credentials = new NetworkCredential(strUser, strPassword); ftp.Connect(); string path = Serverpath; string destinationDirectory = localpath; List<string> documentname = new List<string>(); bool DownloadStatus = false; if (Directory.Exists(destinationDirectory)) { #region 从FTP服务器下载文件 foreach (var ftpListItem in ftp.GetListing(path, FtpListOption.Modify | FtpListOption.Size) .Where(ftpListItem => string.Equals(Path.GetExtension(ftpListItem.Name), filetype))) { string destinationPath = string.Format(@"{0}\{1}", destinationDirectory, ftpListItem.Name); using (Stream ftpStream = ftp.OpenRead(ftpListItem.FullName)) using (FileStream fileStream = File.Create(destinationPath, (int)ftpStream.Length)) { var buffer = new byte[200 * 1024]; int count; while ((count = ftpStream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, count); } } documentname.Add(ftpListItem.Name); } #endregion #region 验证本地是否有该文件 string[] files = Directory.GetFiles(localpath, "*"+filetype); int filenumber = 0; foreach(string strfilename in files) { foreach(string strrecievefile in documentname) { if (strrecievefile == Path.GetFileName(strfilename)) { filenumber++; break; } } } if(filenumber==documentname.Count) { DownloadStatus = true; } #endregion } return DownloadStatus; } } }

1,092

社区成员

发帖
与我相关
我的任务
社区描述
云计算服务器、网络、虚拟化相关讨论
社区管理员
  • 服务器
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧