设为首页 收藏本站
查看: 1247|回复: 0

FTP操作代码示例

[复制链接]

尚未签到

发表于 2015-5-27 06:34:36 | 显示全部楼层 |阅读模式
  在Windows编程,常涉及到操作FTP的需求。
  以下为个人总结的一些示例代码:



  1 //
  2 //*********************************************************
  3 //Ftp basic operation
  4 //*********************************************************
  5 //
  6 //
  7 //1. connect to ftp
  8 //
  9 BOOL flag;
10 CString   cstrFtpServer   = TEXT("10.142.252.155"); //ftp server address
11 CString   cstrFtpUserName = TEXT("pdmug");          //user name
12 CString   cstrFtpPassword = TEXT("pdmuguser");      //password
13 CInternetSession* m_pInternetSession = NULL;
14 CFtpConnection* m_pFtpConnection = NULL;
15
16 try
17 {
18     m_pInternetSession = new CInternetSession();
19     m_pFtpConnection = m_pInternetSession->GetFtpConnection(cstrFtpServer,
20                            cstrFtpUserName, cstrFtpPassword, 21);  //21 --- ftp port
21 }
22 catch (CInternetException* pEx)    //error:can not connect to specific ftp
23 {
24     if (m_pInternetSession != NULL)
25     {
26         delete m_pInternetSession;
27     }
28     if (m_pFtpConnection != NULL)
29     {
30         delete m_pFtpConnection;
31     }
32   
33     return;
34 }
35
36 //
37 //2. get current directory
38 //
39 CString cstrCurrDir;
40 flag = m_pFtpConnection->GetCurrentDirectory(cstrCurrDir);
41 if (!flag)  //get current directory error
42 {
43 }
44
45 //
46 //3. set current directory
47 //
48 CString cstrNewCurrDir = TEXT("//pdmpv/GOX/BACK_COVER/");
49 flag = m_pFtpConnection->SetCurrentDirectory(cstrNewCurrDir);
50 if (!flag)  //set current directory error
51 {
52 }
53
54 //
55 //4. download file from ftp
56 //
57 flag = m_pFtpConnection->GetFile(TEXT("CA110900_2ND_MD.ol"),
58                                  TEXT("D:\\123.ol"),
59                                  TRUE);
60 if (!flag)  //download file fail
61 {
62 }
63
64 //
65 //5. upload file to ftp
66 //
67 flag = m_pFtpConnection->PutFile(TEXT("D:\\123.txt"), TEXT("456.txt"));
68 if (!flag)  //upload file fail
69 {
70 }
71
72 //
73 //6. rename file on ftp
74 //
75 flag = m_pFtpConnection->Rename(TEXT("456.txt"), TEXT("456_wy.txt"));
76 if (!flag)  //rename file fail
77 {
78 }
79
80 //
81 //7. remove file on ftp
82 //
83 flag = m_pFtpConnection->Remove(TEXT("456.txt"));
84 if (!flag)  //remove file fail
85 {
86 }
87
88 //
89 //8. create directory on ftp
90 //
91 flag = m_pFtpConnection->CreateDirectory(TEXT("WangYao"));
92 if (!flag)  //create directory on ftp fail
93 {
94 }
95
96 //
97 //9. remove directory on ftp
98 //Note: directory must be empty or will cause error
99 //
100 flag = m_pFtpConnection->RemoveDirectory(TEXT("WangYao"));
101 if (!flag)  //remove directory on ftp fail
102 {
103 }
104
105 //
106 //10. Do not forget to free resource
107 //
108 delete m_pInternetSession;
109 delete m_pFtpConnection;
110
111
112 //
113 //*********************************************************
114 //Ftp file finder
115 //*********************************************************
116 //
117 //
118 //1. 如上:connect to ftp
119 //
120
121 //
122 //2. 如上:set current directory
123 //
124
125 //
126 //3. find file(参考CFileFind)
127 //
128 CFtpFileFind fFinder(m_pFtpConnection);
129 BOOL bFind = fFinder.FindFile(TEXT("*.*"));
130 while (bFind)
131 {
132     bFind = fFinder.FindNextFile();
133
134     //当前文件夹及上层文件夹(名称分别为.和..)-----------------
135     if (fFinder.IsDots())
136     {
137         continue;
138     }
139
140     //子文件夹---------------------------------------------
141     if(fFinder.IsDirectory())
142     {
143         CString cstrDirName = fFinder.GetFileName();  //directory name
144         CString cstrDirPath = fFinder.GetFilePath();  //directory path
145         continue;
146     }
147
148     //文件-------------------------------------------------
149     CString cstrFileName = fFinder.GetFileName();   //file name
150     CString cstrFilePath = fFinder.GetFilePath();   //file path
151 }
152
153 fFinder.Close();
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-70971-1-1.html 上篇帖子: 一款能够自动上传文件到ftp服务器的软件 下篇帖子: 在Win7中用ftp的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表