C#FTP对文件的操作
文章目录
- 一、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对文件的操作相关推荐
- ensp配置FTP进行文件操作
ensp配置FTP进行文件操作 首先配置设备之间的连通 接下来配置路由器为FTP Client 在本地创建一个FTP-Huawei文件夹,然后再创建一个子文件夹Config,再在里面创建一个test. ...
- 实验三:配置通过FTP进行文件操作
一.原理分析 FTP,文件传输协议,其主要作用是向用户提供本地和远程主机之间的文件传输,尤其是在进行版本升级.日志下载和配置保存等业务操作时.FTP采用C/S结构. 二.实验目的 1.理解FTP的应用 ...
- 1.6配置通过ftp进行文件操作
ftp是文件传输的internet标准,主要功能是向用户提供本地和远程主机之间的文件传输.版本升级 日志下载 使用c/s结构 实验内容:模拟企业网络,pc1访问ftp server 做上传下载操作.出 ...
- c# FTP服务器文件上传下载等操作
文章目录 判断FTP连接 FTP文件上传 FTP文件下载 删除指定FTP文件 删除指定FTP文件夹 获取FTP上文件夹/文件列表 创建文件夹 获取指定FTP文件大小 更改指定FTP文件名称 移动指定F ...
- 华为设备配置——配置通过FTP进行文件操作
1.实验原理. FTP(File Transfer Protocol,文件传输协议)是 TCP/IP 协议组中的协议之一.其主要功能是向用户提供本地和远程主机之间的文件传输,FTP采用C/S(Clie ...
- 不限文件类型的ftp服务器,ftp服务器文件类型
ftp服务器文件类型 内容精选 换一换 在SAP系统中,如果选择共享文件系统由SFS Turbo而非NFS Server提供时,例如SAP HANA中的Backup卷或者Shared卷,您需要创建SF ...
- ftp服务器上传的文件打不开,ftp服务器文件有的上传不了
ftp服务器文件有的上传不了 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器 ...
- 如何同步FTP服务器文件,ftp服务器文件同步
ftp服务器文件同步 内容精选 换一换 安装完Mind Studio并进入相关工程页面后,如果用户使用算子工程或应用工程开发了相关程序,需要进行工程的编译和运行,用于生成相关二进制文件,进行工程编译前 ...
- linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器
如何通过FTP将文件上传到腾讯云Linux云服务器?上一篇小编给大家介绍了通过Winscp将文件上传到云服务器的方法,今天小编为大家介绍过FTP将文件上传到腾讯云Linux云服务器的方法,用户需要使用 ...
最新文章
- 强化学习笔记4:强化学习分类
- php+ajax+jquery分页并显示数据
- Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)
- TriCore处理器的上下文切换原理
- app推广广告词热点
- 桌面重置,所有的东西都消失了怎么办?
- visualGraph 下载
- SpringBoot 的请求参数校验注解
- 负数求余究竟怎么求???
- SSLOJ·谷仓的安保【DFS】
- c语言与java的区别
- 线性空间的定义与性质
- 驱动字库芯片GT23L24M0140
- 解题记录 P4017 最大食物链计数 拓扑排序
- 远程搜索多选组件实现
- 第15讲 布尔函数标准型及化简
- go reflect Elem() 深入学习
- Blog--›Mac TNT 软件下载地址
- 制作简易的个人主页(代码笔记)
- 成熟男人与不成熟男人的区别