新手求助:
最近在寫一個FTP相關的程式,剛接觸,有一些問題請教:
MFC,GetFtpConnection連接成功FTP后,已經可以呼叫SetCurrentDirectory和GetCurrentDirectory
問題1:寫GetFile時,確定傳進去的引數是對的,為什么總是程式跑進去卡死掉,就是跑到GetFile時,程式一直不動了,等了很久都沒有回傳。
原始碼:
void Personal_Debug::ConnectFTP()//連接
{
m_pInetSession=new CInternetSession
(AfxGetAppName(),1,
PRE_CONFIG_INTERNET_ACCESS);
try
{
m_pFtpConnection=m_pInetSession->
GetFtpConnection(_T("ftp.spreadtrum.com"),_T("autotestrd"),_T("auto27test$RD"));
}
catch(CInternetException *pEx)
{
TCHAR szError[1024];
/*if(pEx->GetErrorMessage(szError,1024))
AfxMessageBox(szError);
else
AfxMessageBox(_T("There was an exception"));*/
pEx->Delete();
m_pFtpConnection=NULL;
}
}
void Personal_Debug::OnBnClickedButton5()
{
// TODO: Add your control notification handler code here
_tcscpy(m_tAllPathParam.strLocalINI, m_szSModulePath);
_tcscat(m_tAllPathParam.strLocalINI, _T("\\Project\\Temp\\AutoTester.ini"));
m_pFtpConnection->SetCurrentDirectory(_T("SPRD\\Tools\\AutoTester"));
//::DeleteFile(m_tAllPathParam.strLocalINI); //問題2,這一步是否一定要做?
if (!m_pFtpConnection->GetFile(_T("AutoTester.ini"),m_tAllPathParam.strLocalINI))//問題1:一直呼叫回傳失敗
{
MessageBox(_T("Sync - Fail"));
int iTemp = GetLastError();
strTemp.Format(_T("目錄獲取出錯,error:%d"),iTemp);
Log(strTemp);
}
}
問題2:是否GetFile時,一定要確定本地沒有檔案? 我曾經調成功過,比如從服務器上下載a.txt到本地,本地如果已經存在a.txt就會回傳失敗,需要呼叫deletefile刪掉本地的再呼叫,是否一定要做deletefile這一步?
就這兩個問題謝謝大神們了
uj5u.com熱心網友回復:
rename也行uj5u.com熱心網友回復:
謝謝zhao老師那意思就是GetFile必須要“本地沒有同名檔案”才可以正確呼叫了
問題1可否幫忙看下代碼哪里有問題 為何會卡住GetFile無限卡死呢。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96755.html
標籤:基礎類
