使用VC连接ftp
来源:互联网 发布:访问服务器数据库很慢 编辑:程序博客网 时间:2024/04/29 19:47
使用VC连接ftp
--lihn1987(转载请注明作者,谢谢)
使用VC进行ftp的连接其实是一件非常简单的东东,但是要想做好确实不简单,下面我就从简单和不简单两部分进行说明
简单的一面:
需要使用的头文件:#include <afxinet.h>
需要使用的类 CInternetSession CFtpConnection
首先 定义一个CInternetSession 类型变量,然后调用GetFtpConnection函数,获得一个CFtpConnection* 类型的指针,其参数无非是一些连接的地址,用户名,密码之类的,很简单
然后就直接可以调用CFtpConnection* 类型变量的如下成员函数进行ftp的操作了
SetCurrentDirectory 设置当前FTP目录
GetCurrentDirectory 获取此次连接的当前目录
GetCurrentDirectoryAsURL 获取作为URL的此次连接的当前目录
RemoveDirectory 从服务器移去指定目录
CreateDirectory 在服务器上构造一个目录
Rename 将服务器上的文件改名
Remove 从服务器上移去一个文件
PutFile 将一个文件放到服务器上
GetFile 从连接的服务器上获取一个文件
OpenFile 在连接的服务器上打开一个文件
Close 关闭与服务器的连接
但看这些够简单吧,几句话就基本讲完了ftp的所有功能,包括上传,下载,更换目录。
下面说一下复杂的一面
我们不禁会想
1我要列出当前ftp下的目录文件怎么办?
2我想现实文件下载和上传的进度怎么办?
3我想查找某一个文件怎么办?
4我要使用多线程有何注意事项?
下面一一回答
1我要列出当前ftp下的目录文件怎么办?
要列出当前目录下的所有文件和文件夹需要使用CFtpFileFind类,以下是一段伪代码
CFtpFileFind是一个文件查找的类
CString filepath = "/test_path/*.*"
CInternetSession m_base_session;
CFtpConnection* m_base_connnectine = m_base_session.GetFtpConnection(m_str_url, m_str_username);
CFtpFileFind cFinder(m_base_connnectine);
int nOK = cFinder.FindFile(filepath);
while(nOK)
{
nOK = cFinder.FindNextFile();
//这里调用cFinder的各种函数,可以得到文件的文件名,大小,属性等等
}
cFinder.close();
需要注意,每一个CFtpFileFind在close之前不可在调用另外一个CFtpFileFind,因为一个CFtpConnection中只允许有一个CFtpFileFind的实体。
2我想现实文件下载和上传的进度怎么办?
那就只有使用CFtpConnection* 的open函数了,然后通过read固定大小,然后和CFtpFileFind查找到的结果,或者直接通过CInternetFile类获得的文件大小相比较即可得到当前下载进度
3我想查找某一个文件怎么办?
如同第一个问题的解决方法,只不过把*.*换成我们需要查找的文件就可以了。
如果有其他问题可以留言哈,或者联系我的邮箱 lihn1987@gmail.com
转载请注明出处,谢谢
- 使用VC连接ftp
- 使用VC连接ftp
- 使用FtpClient连接FTP服务器
- 使用C#的FTP类时,连接不上FTP服务器
- 使用MC52i/MC55i连接FTP服务器
- 使用MC52i/MC55i连接FTP服务器
- Mac 使用smb协议连接FTP服务器
- window中使用ftp连接linux
- 如何使用winscp建立ftp的连接
- 使用cmd连接操作ftp服务器
- VC++使用动态连接库
- vc 使用ADO连接 sqlserver
- FTP连接
- ftp连接
- FTP连接
- 如何使用VC进行HTTP连接
- VC使用UDL文件建立ADO连接
- VC下使用ADO连接数据库
- 修复网络故障突破网络限制-免费VPN代理使用攻略
- Flex引擎
- PLC内存管理
- 广告的轮翻滚动
- 困惑中。。。。。。
- 使用VC连接ftp
- SQL Server 数据库 链接 sp_addLinkedServer
- WindowsXp进程解析
- ubuntu 我想使用英文版的,但是又要使用中文,怎么办呢?
- Xcode修改项目名
- 夏天到了如何为linux降温节能
- Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动
- CString/C++ string常用操作详解
- ubuntu+opengl程序设计(一)准备工作