이것저것/My_Work

[MFC] - FTP 접속 및 파일 다운

우담바라 2013. 10. 16. 10:06

 

void CTestFTP::FTP_DOWN(CString filename)
{

 CInternetSession session;

 CFtpConnection *pConnection = NULL;


 try {

//                                                                     IP주소                ID             Password

  pConnection = session.GetFtpConnection(  _T("111.222.33.4"), _T("abcd"), _T("12345"));

 

  // 연결이 안됐을 경우
  if (!pConnection) {
   AfxMessageBox(_T("Error"));
   pConnection = NULL;
   return;
  }


  pConnection->SetCurrentDirectory(_T("/s"));

  CString str;

  pConnection->GetCurrentDirectory(str);// FTP 서버의 폴더 경로 얻기
  

  CString RemoteStr;
  CString LocalStr;
  RemoteStr.Format( _T("%s/%s"),m_ProgramPath,filename/*_T("abcd.exe")*/); // ftp내 폴더 위치 및 파일명
  LocalStr.Format(_T("%s\\%s"), path, filename);                                            // 복사될  위치 및 파일명

  pConnection->GetFile(RemoteStr, LocalStr, FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_ASCII | INTERNET_FLAG_RELOAD,NULL);

//windows 7 64bit 에서  정상동작 하지 않을 경우 'INTERNET_FLAG_RELOAD'  플래그 추가

 

 } catch (CInternetException *pEx) {

  pEx->ReportError(MB_ICONEXCLAMATION);

  pConnection = NULL;

  pEx->Delete();

 }

 pConnection->Close();

}