最近写的一个到指定FTP下载服务器上下载的函数,主要用到类有CInternetSession,CFtpConnection

具体内容看代码吧,这个不能的!虽然很简单,不值得往外写,但我想收藏起来留着以后用也是很有意义的。

/************************************************************************/

/* 到指定的FTP服务器上下载的函数                                       */

/* liuxwin                                                              */

/* 20006.12.29                                                          */

/* 返回值: 成功 TRUE, 失败 FALSE                                      */

/*

参数说明:

FtpPath   要下载的ftp 目录或文件

localPath    保存到本地的目录

ftpAdd       ftp地址

ftpSuser   登陆ftp的用户名

ftpPass       登陆ftp的密码

sErr          发生错误时,返回的错误信息*/

/************************************************************************/

BOOL GetFileFromFTP( CString FtpPath, CString LocalPath ,CString ftpAdd, CString ftpUser, CString ftpPass, CString &sErr )

{

CString sTemp ;

CString sLocalTemp ;

CString sTempFtpPath ;

CInternetSession  pInternetCon(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);

CFtpConnection *pFtpCon ;

try

{

pFtpCon =pInternetCon.GetFtpConnection( ftpAdd, ftpUser, ftpPass, INTERNET_DEFAULT_FTP_PORT );

if ( pFtpCon != NULL)

{

CFtpFileFind FtpFinder( pFtpCon ) ;

BOOL bWork = FtpFinder.FindFile( FtpPath );

while ( bWork )

{

bWork = FtpFinder.FindNextFile() ;

if ( FtpFinder.IsDots() )

continue;

if(FtpFinder.IsDirectory() )

{  //是目录

sTemp.Empty() ;

sTemp = FtpFinder.GetFileName() ;

sTempFtpPath.Empty() ;

sTempFtpPath = FtpPath + "/"+ sTemp  ;

sLocalTemp.Empty() ;

sLocalTemp = LocalPath + "\\" + sTemp ;

CFileStatus   rStatus;

if( !( CFile::GetStatus( sLocalTemp, rStatus ) ) )

{//文件夹不存在, 创建之

if( !(CreateDirectory((LPCTSTR)sLocalTemp, NULL)) )

{//创建失败

DWORD dErr = GetLastError() ;

sErr.Format( "创建新目录失败: ERROR  %d" ,dErr ) ;

return FALSE ;

}

}

GetFileFromFTP( sTempFtpPath, sLocalTemp, ftpAdd, ftpUser, ftpPass, sErr ) ;

}

else

{

sTemp.Empty() ;

sTemp = FtpFinder.GetFileName();

sLocalTemp.Empty() ;

sLocalTemp = LocalPath + "\\" + sTemp ;

sTemp.Empty() ;

sTemp = FtpFinder.GetFilePath();//

CFileStatus   rStatus;

if( !( CFile::GetStatus( sLocalTemp, rStatus ) ) )

{//文件不存在,下载之

if( !( pFtpCon->GetFile( sTemp, sLocalTemp, true, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1) ) )

{//下载失败

DWORD dErr = GetLastError() ;

sErr.Format( "下载失败: ERROR  %d" ,dErr ) ;

return FALSE ;

}

else

WriteLog( "下载成功", 1 ) ;

}

}

}

FtpFinder.Close() ;

}

}

catch (CInternetException * pEx)

{

TCHAR szError[1024];

pEx->GetErrorMessage(szError,1024) ;

sErr.Format( "连接FTP失败:%s", pEx ) ;

pEx->Delete();

pFtpCon=NULL;

return FALSE ;

}

return TRUE ;

}

linux ftp下载函数函数,FTP下载的函数相关推荐

  1. linux curl 命令 http请求、下载文件、ftp上传下载

    1. curl 命令简介 cURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP.HTTPS. ...

  2. linux 关闭开机 ftp,解决linux ftp匿名上传、下载开机自启问题

    如果在平时学习,工作中经常使用 ftp 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令: 1.chkconfig 命令 主要作用:用于检查,设置系统的各种服务.其中有几个重要参数, ...

  3. linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...

    vsftpd登录慢主要是nameserver #定义DNS服务器的IP地址没有设置了,这样我们只要设置或更新一下nameserver即可解决了, 在使用vsftpd的过程中,一直以来都有一个问题就是在 ...

  4. linux ftp匿名只能下载,04. 创建匿名用户能够上传下载,或只能下载的目录

    Re:FTP 文件传输服务 ========================== FTP 服务不论在企业或教学中,是很常用的文件共享方式,它既可以做到匿名访问,也可以做到用户名和密码访问,更可以做到只 ...

  5. linux ftp 查找文件,Linux shell ftp命令根据文件日期下载文件的方法

    需求:ftp获取远程数据的文件,根据文件的创建时间点下载文件. 可以自行扩展根据文件的大小等其他需求. 知识点总结: 1.获取文件的时间: ls -lrt|awk '{print $6" & ...

  6. linux Centos的ftp搭建-配置-上传下载文件--全面版

    ftp搭建 一.搭建前提 a.ssh服务已经开启,b.防火墙关闭,c.连网 1.查看ssh和防火墙的状态    service sshd status    service iptables stat ...

  7. 【踩坑】Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题

    [踩坑]Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题 一. 问题重现 二. 问题解决思路 1. 确认是不是上传就导致数据出错了 2. 是不是平台问题 三. ...

  8. linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...

  9. linux带特殊字符的用户密码,ftp密码带特殊字符的下载链接怎么弄?

    想用命令行调用IDm下载!我们知道,一般的ftp的下载链接格式是这样子的:ftp://username:[email protected]/file.zip 比如: ftp://admin:[emai ...

  10. linux ftp匿名只能下载,解决linux ftp匿名上传、下载开机自启问题

    解决linux ftp匿名上传.下载开机自启问题 如果在平时学习,工作中经常使用 FTP 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令: 1.chkconfig 命令 主要作用: ...

最新文章

  1. 大而强 VS 小而美 | 史晓东、周明等共论:大模型主导的时代,NLP 该如何演进?...
  2. SQL小技巧系列 --- 行转列合并
  3. 「前端组件化」该怎么理解?
  4. PostgreSQL复制特性历史漫谈-士别三日,当刮目相看
  5. Oracle存储过程游标for循环怎么写
  6. HTML--day02
  7. YALMIP学习总结
  8. 派生类中重新定义虚函数及虚函数的注意事项
  9. 冲刺大厂每日算法面试题,动态规划21天——第十二天
  10. 【EdgeX(13)】 :EdgeX官方的摄像头demo-app,接入摄像头可以控制摄像头的上下左右方向,创建OpenVINO的目标检测跟踪服务,并成功接受到相关坐标数据,可以直接做边缘计算了。
  11. 数据结构---线性表
  12. 阿里天池“水果店小系统”的python实现
  13. 浅析PowerBuilder下动态SQL语句
  14. 情人节最全送礼指南、实用又好看的礼物推荐
  15. 数据结构:单链表包含(归并)
  16. nag在逆向中是什么意思_[求助]关于NAG删除资源的问题。
  17. 教你使用python做一段魔性的音乐
  18. Java Missing method body, or declare abstract
  19. NUIST 9th 校赛 P4
  20. android 自定义特效,Android自定义View:实现炫酷的点赞特效

热门文章

  1. Kubernetes operator 模式开发实践
  2. 如何实现一次编码,到处运行?新一代云端一体化探索
  3. Knative Serving 之路由管理和 Ingress
  4. GMTC2019|闲鱼-基于Flutter的架构演进与创新
  5. 阿里云大数据总监:计算让城市更智能
  6. 开源工具Arena,数据科学家再也不用为Kubernetes犯难啦!
  7. 像搭“乐高”一样实现整合式网络安全体系
  8. 专访世界顶级游戏背后的男人
  9. 备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?
  10. 神龙X-Dragon,这技术“范儿”如何?| 问底中国IT技术演进