下载文件函数DownLoadFile()的实现方法与UpdataFile()函数一样,具体实现如下
void CFtp::DownLoadFile(CString filename)
//参数表示从列表中获取的文件名
{
int lenth;//已经获取的文件大小
int i=0;
archive->WriteString("RETR "+"\r\n");
//调用CArchive类的WriteString()函数发送RETR命令
archive->WriteString(filename+"\r\n");
//向服务器发送就要下载的文件名称
char buff[1024]={0};//设置缓冲区
SOCKET sock;//与服务器建立连接成功后返回的套接字句柄
CFile file(filename,CFile::modeReadWrite);
//建立文件并指定文件属性为可读可写
while(length!=0)
{
::Recv(sock,buff,1024,NULL);//在套接字上接收数据到缓冲区
file.Write(buff,1024);//将缓冲区内容写到文件中
length=lenth-1024;
//从文件总大小中减去已经接收并写入文件中的大小
}
}
CFtp封装了发送命令 接收数据
获取文件属性和上传下载文件等FTP主要操作
要调用时
将头文件和文件加入工程
创建类对象 对封装好的函数进行调用即可