IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> C#调用FluentFTP将文件批量上传到ftp服务器 -> 正文阅读

[系统运维]C#调用FluentFTP将文件批量上传到ftp服务器

??上篇文章介绍了在Windows Server 2008上搭建FTP服务,本文测试使用C#调用FluentFTP将文件批量上传到ftp服务器。
??FluentFTP是由C#开发的开源FTP和FTPS库,其开源地址见参考文献1,关于FluentFTP详见其在GitHub中的首页介绍。本文学习参考文献2中的示例代码,并实现简单的文件批量上传功能。

??在Visual Studio中新建Winform项目,添加FluentFTP包,项目主要使用FluentFTP中的FtpClient类连接并操作FTP库。
??本项目主要实现四块内容;

  • 创建FtpClient对象。主要指定服务器地址、端口、连接用户名和密码,参考文献2中的服务器地址使用的是“ftp://server”的形式,本文测试的时候直接给的服务器IP,也能正常连接。除此之外,还指定了连接方式,参考文献2中使用的是PASV被动模式,本文使用的是PORT主动模式(这两种模式的区别请见参考文献5,本文使用PORT仅仅是为了试试和PASV的不同);
  • 连接FTP服务器。调用Connect函数连接FTP服务器,这里需要说明的请见参考文献2,主要是为防止中文乱码,对编码方式进行了特别设置,代码见下面(直接用的参考文献2中的代码);
	//启用UTF8传输
    var result = m_ftpClient.Execute("OPTS UTF8 ON");
    if (!result.Code.Equals("200") && !result.Code.Equals("202"))
        m_ftpClient.Encoding = Encoding.GetEncoding("ISO-8859-1");
  • 获取ftp当前工作目录中的文件清单。调用FtpClient类中的GetListing函数获取当前工作目录中的文件清单,包括文件和文件夹。该函数返回FtpListItem集合,每个FtpListItem对象对应文件夹、文件或链接,具体类型保存在Type属性中。除此之外,该类中Name属性保存的是不包含路径的名称,而FullName中包含带全路径的名称;
    在这里插入图片描述
  • 批量上传文件。FtpClient主要支持上传单个文件(UploadFile)和整个文件夹(UploadDirectory),同时支持同步上传和异步上传。本文中使用UploadDirectory批量上传整个文件夹中的文件。

??基于参考文献2中的示例代码,编写了批量上传文件测试程序,实现了上述四块内容。程序运行时的界面如下图所示(程序里面暂时写死了将文件上传到音乐文件夹中)。
在这里插入图片描述
??登录FTP服务器并进入FTP服务配置的文件夹中,可以看到已经将音乐文件上传到音乐文件夹中。
在这里插入图片描述
??本文的程序仅是测试了客户端连接ftp服务器、批量上传文件功能,还未实现逐级浏览ftp服务文件、下载文件等功能。后续还会继续学习FluentFTP的用户,逐步完善测试程序的功能。

参考文献
[1]https://github.com/robinrodricks/FluentFTP
[2]https://www.cnblogs.com/abnerwong/p/14179159.html
[3]https://github.com/robinrodricks/FluentFTP/wiki
[4]https://www.sohu.com/a/440334572_100016227
[5]https://blog.csdn.net/f0rd_/article/details/102891643

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:35:42  更:2022-03-21 21:36:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:39:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码