zoukankan      html  css  js  c++  java
  • FTP操作代码示例

    在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();



  • 相关阅读:
    jQuery操作radio、checkbox、select 集合
    正则表达式
    ajax传递数组:属性traditional设置
    EF是否存在(Any/Count>0的用法)
    Layui上传图片(1.0版)
    A-01 最小二乘法
    09-01 Tensorflow1基本使用
    08-08 细分构建机器学习应用程序的流程-模型优化
    08-07 细分构建机器学习应用程序的流程-测试模型
    08-06 细分构建机器学习应用程序的流程-训练模型
  • 原文地址:https://www.cnblogs.com/Hisin/p/2429494.html
Copyright © 2011-2022 走看看