[源码和文档分享]基于VC++的MFC类库实现的简单FTP客户端
1 FTP客户端设计思想
在WINDOWS环境下,使用VC++开发工具实现一个FTP客户端软件。在本次FTP的设计中主要使用WinInet API编程,无需考虑基本的通信协议和底层的数据传输工作,MFC提供的WinInet类是对WinInet API函数封装而来的,它为用户提供了更加方便的编程接口。而在该设计中,使用的类包括 CInternetSession类、CFtpConnection类和CFtpFileFind类,其中,CInternetSession用于创建一个Internet会话; CftpConnection完成文件操作; CftpFileFind负责检索某一个目录下的所有文件和子目录。
程序的功能:
-
登陆到FTP服务器
-
检索FTP服务器上的目录和文件
-
根据FTP服务器给的权限,会相应地提供:文件的上传、下载、重命名、删除等功能
2 Ftp客户端的各个子模块主要函数功能分析及流程图
2.1 对程序的外观进行修改
2.1.1 添加背景图
为CMyFtpView类窗口,添加一个位图背景显示,首先为CmyFtpView添加WM_ERASEBKGND消息响应函数OnEraseBkgnd。该函数的前提是所需的位图已经导入资源中。
2.1.2 添加时钟显示功能
首先为CMainFrame类,设置一个定时器,然后为该类响应WM_TIMER消息,在OnTimer函数中实现功能。
2.1.3 修改菜单栏、状态栏
在资料对话框或源程序代码中采取针对性的操作,得以实现。
2.2 连接到FTP服务器功能的实现
2.2.1 生成连接对话框
新建一个对话框(CConnectDlg)用来输入服务器的站点,用户名和密码信息,然后通过该对话框连接到服务器.主要的函数void CConnectDlg::OnConnect() 实现的功能就是更新当前的输入。
2.2.2 连接CMyFtpView::OnConnect()
该函数是菜单项“连接”的响应函数,主要生成“连接”CConnectDlg对话框,从而建立FTP连接。
2.2.3 连接时间void CMyFtpView::OnTimer
对CMyFtpView定时器,所发送的WM_TIMER消息进行响应,主要用于监视FTP连接是否成功连接。
2.3 FTP客户端文件的显示查询实现
2.3.1 查询函数OnQuary
该函数是“查询”按钮BN_CLICKED的响应函数,主要调用ListContent函数为实现查询的功能
2.3.2 显示当前目录下所有的子目录与文件ListContent
参数所代表的是要查询的目录名,实现的方法主要是通过CftpFileFind类对象得以实现,返回给用户的信息有:目录或文件名、文件最后修改的时间以及文件的大小和类型。
流程图如下所示:
参考文档和完整的文档和源码下载地址: