zoukankan      html  css  js  c++  java
  • 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();


  • 相关阅读:
    Oracle执行计划(三)
    执行计划-数据访问方式(全表扫描与4种索引的方式)
    比较两个文件内容是否相同
    设置myeclipse控制台输出到文件中
    Java出现NoSuchElementException异常
    Spring-Aop编程(三)-AspectJ
    Spring AOP编程(二)-AOP实现的三种方式
    Spring AOP编程(一)-AOP介绍
    java.lang.OutOfMemoryError: GC overhead limit exceeded异常处理
    Spring 属性依赖注入
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887557.html
Copyright © 2011-2022 走看看