MFC FTP操作

本文讲解怎样利用MFC对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();
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值