建立基于对话框的MFC应用程序CMfcFtpWinInetDlg:
1、首先Dlg类中包含头文件 #include "afxinet.h"
2、添加成员变量:
C++ Code
1
2 3 |
private:
CFtpConnection* m_pFtpConnection; CInternetSession m_Session; |
3、在OnInitDialog中加入Ftp连接代码:
C++ Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// TODO: Add extra initialization here m_pFtpConnection = NULL ; try { // Here usr is the username, pwd is the password // and ftpsite.com is the name of the ftp site which // you want to connect to. m_pFtpConnection = m_Session.GetFtpConnection(_T( "localhost" ), _T( "Manager" ), _T( "kingview" ), INTERNET_INVALID_PORT_NUMBER); } catch (CInternetException *pEx) { pEx->ReportError(MB_ICONEXCLAMATION); m_pFtpConnection = NULL ; pEx->Delete(); } |
4、在OK和Cancel按钮中加入关闭Ftp连接代码:
C++ Code
1
2 3 4 5 6 |
// TODO: Add your control notification handler code here m_Session.Close(); m_pFtpConnection->Close(); if (m_pFtpConnection != NULL ) delete m_pFtpConnection; |
5、添加Upload以及Download按钮代码:
C++ Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
void
CMfcFtpWinInetDlg::OnBnClickedBtnUpload() { // TODO: Add your control notification handler code here CFileFind Finder; CString strFileName; // Here c:\\Myfile.bmp is the name of the file that you want // to upload. It neednt necessarily be a bitmap file. You // can upload any file that you want to. // The CString strFileName is used so that the same name // is uploaded to the ftp server. // After uploading, the file in the ftp server will have // the same name as your local file. // You can also rename it to anything if (Finder.FindFile(_T( "F:\\hot.gif" ))==TRUE) { Finder.FindNextFile(); strFileName = Finder.GetFileName(); Finder.Close(); } BOOL bUploaded = m_pFtpConnection->PutFile( _T( "F:\\hot.gif" ), strFileName, FTP_TRANSFER_TYPE_BINARY, 1 ); AfxMessageBox(_T( "Uploaded Successfully" )); } void CMfcFtpWinInetDlg::OnBnClickedBtnDownload() { // TODO: Add your control notification handler code here BOOL bDownloaded = m_pFtpConnection->GetFile( _T( "hot.gif" ), _T( "D:\\hot.gif" ), TRUE, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1 ); AfxMessageBox(_T( "Downloaded Successfully" )); } |
API参数说明,请参考MSDN。