// testTmpMfc.cpp : 定义控制台应用程序的入口点。 #include " stdafx.h " #include " testTmpMfc.h " #ifdef _DEBUG #define new DEBUG_NEW #endif #include < string > #include < iostream > #include < afxinet.h > #include < windows.h > // 唯一的应用程序对象 CWinApp theApp; using namespace std; int _tmain( int argc, TCHAR * argv[], TCHAR * envp[]) ... { //Test Ftp int nRetCode = 0; // 初始化 MFC 并在失败时显示错误 if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) ...{ // TODO: 更改错误代码以符合您的需要 _tprintf(_T("致命错误: MFC 初始化失败 ")); nRetCode = 1; } else ...{ // TODO: 在此处为应用程序的行为编写代码。 } string serverIPstr = "10.132.143.161"; string usrNameStr = "movie"; string usrPwStr = "movie"; string portStr = "21"; string serverFile = "/a/a.txt"; string serverPath = "/"; string localFile = "./a/a/a.txt"; CInternetSession session("Update Session"); CFtpConnection* pFtpConnection = NULL; try ...{ pFtpConnection = session.GetFtpConnection(serverIPstr.c_str(), usrNameStr.c_str(), usrPwStr.c_str(), atoi(portStr.c_str())); if (pFtpConnection == NULL) return false; BOOL b = pFtpConnection->SetCurrentDirectory(serverPath.c_str()); if (b == FALSE) ...{ AfxMessageBox("set current dir error"); return false; } //创建目录 CreateDirectory("./a/a/",NULL); //检查并删除文件 WIN32_FIND_DATA FindFileData; HANDLE hFind; hFind = FindFirstFile( localFile.c_str(), &FindFileData ); if (hFind != INVALID_HANDLE_VALUE) ...{ DeleteFile( localFile.c_str() ); cout << "find such a file" << endl; FindClose(hFind); } b = pFtpConnection->GetFile(serverFile.c_str(), localFile.c_str()); if (b == FALSE) ...{ int error = GetLastError(); CString strError; strError.Format("download file error: %d", error); AfxMessageBox(strError); pFtpConnection->Close(); return false; } pFtpConnection->Close(); }catch (CInternetException* pEx)...{ TCHAR sz[1024]; pEx->GetErrorMessage(sz, 1024); printf("ERROR! %s ", sz); pEx->Delete(); return false; } return nRetCode;}