首先我们为了方便辅助类的使用,使用了构造函数进行对象的参数初始化,如下所示。
我们整个FTPHelper辅助类,是使用FTP命令和FTP服务器进行交换,因此需要如果要获取文件或目录信息,那么就需要对这些信息进行转换为合适格式的内容,这里我们定义一个结构体用来承载这些信息。
这样我们可以顺利把FTP服务器的字符串返回(DOS格式或者Unix格式字符串)它们转换为对应的结构体,方便使用了。
整个辅助函数,提供了一些基础的函数来操作FTP文件或者目录,如下所示
/// <summary> /// 仅获取文件列表 /// </summary> /// <returns>获取的文件列表</returns> public List<FileStruct> ListFiles() /// <summary> /// 仅获取目录列表 /// </summary> /// <returns>获取到的目录列表</returns> public List<FileStruct> ListDirectories()
以及
/// <summary> /// 关闭FTP服务器的所有连接 /// </summary> public void Disconnect() /// <summary> /// 连接到FTP服务器 /// </summary> /// <param name="server">FTP服务器的IP或者主机名</param> /// <param name="port">FTP服务器端口</param> /// <param name="user">登录用户名</param> /// <param name="pass">登录密码</param> public void Connect(string server, int port, string user, string pass) /// <summary> /// 获取FTP的当前工作目录 /// </summary> public string GetWorkingDirectory() /// <summary> /// 在FTP服务器上改变目录 /// </summary> public void ChangeDir(string path) /// <summary> /// 在FTP服务器上创建新的目录 /// </summary> public void MakeDir(string dir) /// <summary> /// 在FTP服务器上移除目录 /// </summary> public void RemoveDir(string dir) /// <summary> /// 在FTP上移除一个文件 /// </summary> public void RemoveFile(string filename) /// <summary> /// 在FTP服务器上重命名一个文件 /// </summary> /// <param name="oldfilename">旧文件名</param> /// <param name="newfilename">新文件名</param> public void RenameFile(string oldfilename, string newfilename) /// <summary> /// 打开一个存在的文件(支持续传)上传 /// </summary> /// <param name="filename">本地上传的文件(包含文件路径)</param> /// <param name="remote_filename">存储在FTP上的文件名称</param> /// <param name="resume">如果存在,指定是否续传</param> public void OpenUpload(string filename, string remote_filename, bool resume) /// <summary> /// 打开下载一个文件 /// </summary> /// <param name="remote_filename">FTP上的远端文件名</param> /// <param name="local_filename">另存为的文件名称(包含文件路径)</param> /// <param name="resume">如果存在,指定是否续传</param> public void OpenDownload(string remote_filename, string local_filename, bool resume) /// <summary> /// 上传文件,循环操作直到文件全部上传完毕 /// </summary> /// <returns>发送的字节数组大小</returns> public long DoUpload() /// <summary> /// 下载文件,循环操作直到文件全部下载完毕 /// </summary> /// <returns>收到的字节数组大小</returns> public long DoDownload()
基于上述的接口,我们编写了一个使用Demo,主要用来介绍这个辅助类的各种接口使用。
获取到的测试结果输出如下所示
虽然我们在附件管理里面采用了更为通用的《附件管理模块》,统一上传文件到服务器上进行管理,并提供下载管理等内容,连接如下:
《Winform开发框架之附件管理应用》。其他公用类库的使用说明,具体可以参考文章《公用类库使用帮助》
不过我们开发的时候,为了方便,也可以使用 FTPHelper辅助类进行简单的文件上传下载操作。
下载说明
☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,
☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!
☉唯一站长QQ:1004003180 [人格担保-本站注重诚信!]
☉购买建议E-mail:1004003180@qq.com 源码收购 E-mail:1004003180@qq.com
☉本站文件解压密码 【文章内都自带解压密码,每个密码不同!】