C++ Operate FTP

//
 //*********************************************************
 //Ftp basic operation
 //*********************************************************
 //
 //
 //1. connect to ftp
 //
 BOOL flag;
 CString   cstrFtpServer   = TEXT("10.142.252.155"); //ftp server address
 CString   cstrFtpUserName = TEXT("pdmug");          //user name
 CString   cstrFtpPassword = TEXT("pdmuguser");      //password
 CInternetSession* m_pInternetSession = NULL;
 CFtpConnection* m_pFtpConnection = NULL;
 
 try
 {
     m_pInternetSession = new CInternetSession();
     m_pFtpConnection = m_pInternetSession->GetFtpConnection(cstrFtpServer, 
                            cstrFtpUserName, cstrFtpPassword, 21);  //21 --- ftp port
 }
 catch (CInternetException* pEx)    //error:can not connect to specific ftp
 {
     if (m_pInternetSession != NULL)
     {
         delete m_pInternetSession;
     }
     if (m_pFtpConnection != NULL)
     {
         delete m_pFtpConnection;
     }
    
     return;
 }
 
 //
 //2. get current directory
 //
 CString cstrCurrDir;
 flag = m_pFtpConnection->GetCurrentDirectory(cstrCurrDir);
 if (!flag)  //get current directory error
 {
 }
 
 //
 //3. set current directory
 //
 CString cstrNewCurrDir = TEXT("//pdmpv/GOX/BACK_COVER/");
 flag = m_pFtpConnection->SetCurrentDirectory(cstrNewCurrDir);
 if (!flag)  //set current directory error
 {
 }
 
 //
 //4. download file from ftp
 //
 flag = m_pFtpConnection->GetFile(TEXT("CA110900_2ND_MD.ol"), 
                                  TEXT("D:\\123.ol"),
                                  TRUE);
 if (!flag)  //download file fail
 {
 }
 
 //
 //5. upload file to ftp
 //
 flag = m_pFtpConnection->PutFile(TEXT("D:\\123.txt"), TEXT("456.txt"));
 if (!flag)  //upload file fail
 {
 }
 
 //
 //6. rename file on ftp
 //
 flag = m_pFtpConnection->Rename(TEXT("456.txt"), TEXT("456_wy.txt"));
 if (!flag)  //rename file fail
 {
 }
 
 //
 //7. remove file on ftp
 //
 flag = m_pFtpConnection->Remove(TEXT("456.txt"));
 if (!flag)  //remove file fail
 {
 }
 
 //
 //8. create directory on ftp
 //
 flag = m_pFtpConnection->CreateDirectory(TEXT("WangYao"));
 if (!flag)  //create directory on ftp fail
 {
 }
 
 //
 //9. remove directory on ftp
 //Note: directory must be empty or will cause error
 //
 flag = m_pFtpConnection->RemoveDirectory(TEXT("WangYao"));
 if (!flag)  //remove directory on ftp fail
 {
 }
 
 //
 //10. Do not forget to free resource
 //
 delete m_pInternetSession;
 delete m_pFtpConnection;
 
 
 //
 //*********************************************************
 //Ftp file finder
 //*********************************************************
 //
 //
 //1. 如上:connect to ftp
 //
 
 //
 //2. 如上:set current directory
 //
 
 //
 //3. find file(参考CFileFind)
 //
 CFtpFileFind fFinder(m_pFtpConnection);
 BOOL bFind = fFinder.FindFile(TEXT("*.*"));
 while (bFind)
 {
     bFind = fFinder.FindNextFile();
 
     //当前文件夹及上层文件夹(名称分别为.和..)-----------------
     if (fFinder.IsDots()) 
     {
         continue;
     }
 
     //子文件夹---------------------------------------------
     if(fFinder.IsDirectory()) 
     {
         CString cstrDirName = fFinder.GetFileName();  //directory name
         CString cstrDirPath = fFinder.GetFilePath();  //directory path
         continue;
     }
 
     //文件-------------------------------------------------
     CString cstrFileName = fFinder.GetFileName();   //file name
     CString cstrFilePath = fFinder.GetFilePath();   //file path
 }
 
 fFinder.Close();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值