C#调用FluentFTP将文件批量上传到ftp服务器

2023-05-16

  上篇文章介绍了在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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#调用FluentFTP将文件批量上传到ftp服务器 的相关文章

随机推荐