文章目录

  • 一、FTP是什么?
  • 二、FTP文件操作
    • 1.Ftp数据加载
    • 2.Ftp文件上传
    • 3.Ftp文件下载
    • 4.Ftp文件删除
  • 项目演示:

一、FTP是什么?

FTP是用来在两台计算机之间传输文件

二、FTP文件操作

1.Ftp数据加载

代码如下(示例):

/// <summary>
/// Ftp数据加载
/// </summary>
/// <param name="F_Ftp">FTP服务器IP</param>
/// <param name="F_User">FTP登录帐号</param>
/// <param name="F_Pwd">FTP登录密码</param>
public void GetFtpFiles(string F_Ftp,string F_User,string F_Pwd)
{//FTP请求对象FtpWebRequest request = null;//FTP响应FtpWebResponse ftpResponse = null;//FTP响应流StreamReader reader = null;try{//声明集合接收FTP里面的文件//FtpFiles为两个属性,Type, NameList<FtpFiles> list = new List<FtpFiles>();//声明uri请求格式string uri = string.Format("ftp://{0}", F_Ftp);//生成FTP请求request = (FtpWebRequest)WebRequest.Create(new Uri(uri));//FTP登录  账号&密码request.Credentials = new NetworkCredential(F_Pwd, F_User);//设置FTP方法request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;request.UsePassive = false;//生成FTP响应ftpResponse = (FtpWebResponse)request.GetResponse();//FTP响应流reader = new StreamReader(ftpResponse.GetResponseStream());string line = reader.ReadLine();while (line != null){//判断是文件夹if (line.Contains("<DIR>")){//截取字符串string msg = line.Substring(line.LastIndexOf("<DIR>") + 5).Trim();FtpFiles ftpFiles = new FtpFiles();ftpFiles.type = "[文件夹]";ftpFiles.Name = msg;list.Add(ftpFiles);}//否则是文件else{string msg = line.Substring(39).Trim();FtpFiles ftpFiles = new FtpFiles();ftpFiles.type = "[文  件]";ftpFiles.Name = msg;list.Add(ftpFiles);}line = reader.ReadLine();}//将数据绑定dataGridView1dataGridView1.DataSource = list;dataGridView1.AutoGenerateColumns = false;     }
catch (Exception ex)
{MessageBox.Show("登录或链接失败!请检查FTP地址,用户名与密码");}
finally {//关闭流if (reader!=null){reader.Close();}if (ftpResponse!=null){ftpResponse.Close();}}}

2.Ftp文件上传

代码如下(示例):

/// <summary>
/// FTP上传文件
/// </summary>
/// <param name="ftpServerIP">FTP服务器IP</param>
/// <param name="ftpUserID">FTP登录帐号</param>
/// <param name="ftpPassword">FTP登录密码</param>
/// <param name="filename">上文件文件名(绝对路径)</param>public void FTPUploadFile(string ftpServerIP, string ftpUserID, string ftpPassword, string filename)
{//上传文件FileInfo uploadFile = null;//上传文件流FileStream uploadFileStream = null;//FTP请求对象FtpWebRequest ftpRequest = null;//FTP流Stream ftpStream = null;try{//获取上传文件uploadFile = new FileInfo(filename);//创建FtpWebRequest对象ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + uploadFile.Name));//FTP登录ftpRequest.Credentials = new NetworkCredential(ftpUserID, ftpPassword);// 默认为true,连接不会被关闭// 在一个命令之后被执行ftpRequest.KeepAlive = false;//FTP请求执行方法ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;// 指定数据传输类型ftpRequest.UseBinary = true;// 上传文件时通知服务器文件的大小ftpRequest.ContentLength = uploadFile.Length;// 缓冲大小设置为2kbint buffLength = 2048;byte[] buff = new byte[buffLength];int contentLen;// 打开一个文件流读上传的文件uploadFileStream = uploadFile.OpenRead();// 把上传的文件写入流ftpStream = ftpRequest.GetRequestStream();// 每次读文件流的2kbcontentLen = uploadFileStream.Read(buff, 0, buffLength);// 流内容没有结束while (contentLen != 0){// 把内容从file stream 写入 upload streamftpStream.Write(buff, 0, contentLen);contentLen = uploadFileStream.Read(buff, 0, buffLength);}MessageBox.Show("上传成功");}catch (Exception ex){MessageBox.Show(ex.Message);}finally{if (uploadFileStream != null){uploadFileStream.Close();}if (ftpStream != null){ftpStream.Close();}
}

3.Ftp文件下载

/// <summary>
/// FTP下载文件
/// </summary>
/// <param name="ftpServerIP">FTP服务器IP</param>
/// <param name="ftpUserID">FTP登录帐号</param>
/// <param name="ftpPassword">FTP登录密码</param>
/// <param name="saveFilePath">保存文件路径</param>
/// <param name="saveFileName">//保存文件名</param>
/// <param name="downloadFileName">下载文件名</param>public void FTPDownLoadFile(string ftpServerIP, string ftpUserID, string ftpPassword,string saveFilePath, string saveFileName, string downloadFileName) {//定义FTP请求对象FtpWebRequest ftpRequest = null;//定义FTP响应对象FtpWebResponse ftpResponse = null;//存储流FileStream saveStream = null;//FTP数据流Stream ftpStream = null;try{//生成下载文件saveStream = new FileStream(saveFilePath + "\\" + saveFileName,FileMode.Create);//生成FTP请求对象                                         ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + downloadFileName));//设置下载文件方法ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;//设置文件传输类型ftpRequest.UseBinary = true;//设置登录FTP帐号和密码ftpRequest.Credentials = new NetworkCredential(ftpUserID, ftpPassword);//生成FTP响应对象ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();//获取FTP响应流对象ftpStream = ftpResponse.GetResponseStream();//响应数据长度long cl = ftpResponse.ContentLength;int bufferSize = 2048;int readCount;byte[] buffer = new byte[bufferSize];//接收FTP文件流readCount = ftpStream.Read(buffer, 0, bufferSize);while (readCount > 0){saveStream.Write(buffer, 0, readCount);readCount = ftpStream.Read(buffer, 0, bufferSize);}MessageBox.Show("下载成功");}catch (Exception ex){MessageBox.Show(ex.Message);}finally{if (ftpStream != null){ftpStream.Close();}if (saveStream != null){saveStream.Close();}if (ftpResponse != null){ftpResponse.Close();}}}

4.Ftp文件删除

/// <summary>
///
/// </summary>
/// <param name="ftpServerIP">FTP服务器IP</param>
/// <param name="ftpUserID">FTP登录帐号</param>
/// <param name="ftpPassword">FTP登录密码</param>
/// <param name="filename">删除文件名(路径)</param>public void DeleteFtp(string ftpServerIP, string ftpUserID, string ftpPassword, string filename) {string uri = "ftp://"+ftpServerIP + "/" + filename;//定义FTP请求对象FtpWebRequest ftpRequest = null;//定义FTP响应对象FtpWebResponse ftpResponse = null;//FTP数据流Stream ftpStream = null;try{//生成FTP请求对象                                         ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));//设置登录FTP帐号和密码ftpRequest.Credentials = new NetworkCredential(ftpUserID, ftpPassword);ftpRequest.KeepAlive=false;//设置删除文件方法ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile;//生成FTP响应对象ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();//获取FTP响应流对象ftpStream = ftpResponse.GetResponseStream();MessageBox.Show("删除成功");}catch (Exception ex){MessageBox.Show(ex.Message);}finally{if (ftpStream != null){ftpStream.Close();}if (ftpResponse != null){ftpResponse.Close();}}}

项目演示:

这是自己写的一个串口演示的小Demo,仅供参考

C# WinForm 实现FTP对文件的:添加、删除、下载

C#FTP对文件的操作相关推荐

  1. ensp配置FTP进行文件操作

    ensp配置FTP进行文件操作 首先配置设备之间的连通 接下来配置路由器为FTP Client 在本地创建一个FTP-Huawei文件夹,然后再创建一个子文件夹Config,再在里面创建一个test. ...

  2. 实验三:配置通过FTP进行文件操作

    一.原理分析 FTP,文件传输协议,其主要作用是向用户提供本地和远程主机之间的文件传输,尤其是在进行版本升级.日志下载和配置保存等业务操作时.FTP采用C/S结构. 二.实验目的 1.理解FTP的应用 ...

  3. 1.6配置通过ftp进行文件操作

    ftp是文件传输的internet标准,主要功能是向用户提供本地和远程主机之间的文件传输.版本升级 日志下载 使用c/s结构 实验内容:模拟企业网络,pc1访问ftp server 做上传下载操作.出 ...

  4. c# FTP服务器文件上传下载等操作

    文章目录 判断FTP连接 FTP文件上传 FTP文件下载 删除指定FTP文件 删除指定FTP文件夹 获取FTP上文件夹/文件列表 创建文件夹 获取指定FTP文件大小 更改指定FTP文件名称 移动指定F ...

  5. 华为设备配置——配置通过FTP进行文件操作

    1.实验原理. FTP(File Transfer Protocol,文件传输协议)是 TCP/IP 协议组中的协议之一.其主要功能是向用户提供本地和远程主机之间的文件传输,FTP采用C/S(Clie ...

  6. 不限文件类型的ftp服务器,ftp服务器文件类型

    ftp服务器文件类型 内容精选 换一换 在SAP系统中,如果选择共享文件系统由SFS Turbo而非NFS Server提供时,例如SAP HANA中的Backup卷或者Shared卷,您需要创建SF ...

  7. ftp服务器上传的文件打不开,ftp服务器文件有的上传不了

    ftp服务器文件有的上传不了 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器 ...

  8. 如何同步FTP服务器文件,ftp服务器文件同步

    ftp服务器文件同步 内容精选 换一换 安装完Mind Studio并进入相关工程页面后,如果用户使用算子工程或应用工程开发了相关程序,需要进行工程的编译和运行,用于生成相关二进制文件,进行工程编译前 ...

  9. linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器

    如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...

最新文章

  1. 强化学习笔记4:强化学习分类
  2. php+ajax+jquery分页并显示数据
  3. Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)
  4. TriCore处理器的上下文切换原理
  5. app推广广告词热点
  6. 桌面重置,所有的东西都消失了怎么办?
  7. visualGraph 下载
  8. SpringBoot 的请求参数校验注解
  9. 负数求余究竟怎么求???
  10. SSLOJ·谷仓的安保【DFS】
  11. c语言与java的区别
  12. 线性空间的定义与性质
  13. 驱动字库芯片GT23L24M0140
  14. 解题记录 P4017 最大食物链计数 拓扑排序
  15. 远程搜索多选组件实现
  16. 第15讲 布尔函数标准型及化简
  17. go reflect Elem() 深入学习
  18. Blog--›Mac TNT 软件下载地址
  19. 制作简易的个人主页(代码笔记)
  20. 成熟男人与不成熟男人的区别

热门文章

  1. STC12C5A60S2单片机IO口工作模式设定
  2. 机器人螺栓拆装_机器人拧螺栓:重庆高端装备制造企业的转型之路
  3. 动手学pytorch笔记整理12
  4. VLSM子网掩码详解!!
  5. AI绘画火了!一文看懂背后技术原理
  6. 国赛优秀论文研读--2019C
  7. python从属关系编号_笨办法学Python 习题 42: 对象、类、以及从属关系
  8. 快给你的对象做一个微信公众号播报吧-java版
  9. putty上传下载文件到windows
  10. 人脸识别系统的matlab仿真