设为首页 加入收藏

TOP

3.3.7 具体实现(4)
2013-10-07 15:55:12 来源: 作者: 【 】 浏览:80
Tags:3.3.7 具体 实现

3.3.7  具体实现(4)

函数Recv()利用archive->ReadString(recvstr)读取服务器返回的数据或者其他信息。其中包括文件的属性等信息。

(5) 用户可以从服务器返回的数据中读取文件的属性。函数GetFileStatu()的实现代码如下:

  1. void CFtp::GetFileStatu(char car)       //参数car表示接收到的数据    
  2. {    
  3. char buf[100] = {0};   //用于保存临时数据    
  4. char ch = "a";         //初始化字符变量    
  5. CString str = "";         //定义字符串    
  6. int i=0j=0;            //定义循环变量    
  7. for(int i=0; i<1024; i++) //循环解析消息数据以获得一条完整的信息    
  8. {       
  9. if(car[i] != "\") buf[i] = car[i]; //取得的信息不是"\",则保存到临时变量    
  10. else     
  11. {     
  12. if(car[i+1] == "r") MessageBox("成功解析一条消息!");    
  13. //如果取得的是结束符号,则提示成功提取    
  14. }    
  15. }    
  16. while(ch!="" && i<1024)    
  17. {    
  18. if(buf[i]!="" && buf[i+1]==EOF) str += (CString)buf[i];    
  19. //如果不是空格,则保存在字符串变量中    
  20. else    
  21. {     
  22. ch = buf[i+1];            //如果是空格,则移动到下一个字符    
  23. i += 1;    
  24. j += 1;    
  25. str = ""; //将字符串变量重置    
  26. }     
  27. switch(j) //根据变量j选择信息字符段    
  28. {    
  29. case 1:    
  30. MessageBox("文件最后一次保存的日期是:%c", str);    
  31. //打印文件各属性    
  32. case 2:    
  33. MessageBox("文件最后一次保存的时间是:%c", str);     
  34. case 3:    
  35. MessageBox("文件的大小是:%c", atoi(str));      
  36. case 4:    
  37. MessageBox("文件的名称是:%c", str);           
  38. }    
  39. }     
  40. }   

函数GetFileStatu()根据参数car所指向的接收内容数组,通过循环方式获取一条完整的信息,然后再从这条信息中取得各属性。

(6) CFtp类中很重要的作用是上传和下载文件,这两个功能的实现方法如下:

  1. void CFtp::UpdataFile(CString str)       //参数str表示上传文件的路径    
  2. {    
  3. archive->WriteString("STOR " + "\r\n");     
  4. //调用CArchive类的WriteString()函数发送STOR命令    
  5. char buff[1024] = {0};            //设置缓冲区    
  6. SOCKET sock;    //与服务器建立连接成功后返回的套接字句柄    
  7. CFile file(str, CFile::modeReadWrite); //关联文件对象并指定文件属性为可读可写    
  8. file.Read(buff, 1024); //读取文件内容到缓冲区中    
  9. file.close();           //读取完毕,关闭文件    
  10. ::Send(sock, buff, 1024, NULL);       //调用Send()函数发送文件内容到FTP文件    
  11. }   

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.3.7 具体实现(3) 下一篇3.3.7 具体实现(5)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)