FTP得到文件出错
同一个FTP程序.在两个SERVER拿同名的文件,一个能成功拿到,别一个返回12003的错误.不知为什么会出现这样的情况.
报错的那个FTP地址帐号密码都没问题.我在本地直接FTP可以打开并拿到文件(因为程序能拿到另一个SERVER的文件,所以实在找不出是什么问题了).请大家帮帮忙
char sz_msg[128] = {0};
BOOL bRes;
HINTERNET hInternet;
HINTERNET hConnect;
hInternet = InternetOpen("A3GS Sample",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
INTERNET_FLAG_NO_CACHE_WRITE);
if ( NULL == hInternet )
{
_snprintf(sz_msg, sizeof(sz_msg) - 1, "InternetOpen Error:%d", GetLastError());
InsertLogs(sz_msg);
return 0;
}
hConnect = InternetConnect(hInternet,
m_FtpCon.server,
INTERNET_DEFAULT_FTP_PORT,
m_FtpCon.login,
m_FtpCon.password,
INTERNET_SERVICE_FTP,
INTERNET_FLAG_EXISTING_CONNECT || INTERNET_FLAG_PASSIVE,
0 );
if ( NULL == hInternet )
{
_snprintf(sz_msg, sizeof(sz_msg) - 1, "InternetConnect Error:%d", GetLastError());
InsertLogs(sz_msg);
InternetCloseHandle(hInternet);
return 0;
}
//======================
//设置ftp的文件所在的文件夹,FTP文件路径,无目录用""代替pFtpFilePath = ""
FtpSetCurrentDirectory (hConnect, pFtpFilePath) ;//----FTP上的文件路径----
bRes = FtpGetFile(hConnect,
pFtpFileName, //---FTP上的文件名
pLocalFileName, //---本地文件名带路径
FALSE,
FILE_ATTRIBUTE_ARCHIVE,
FTP_TRANSFER_TYPE_UNKNOWN,
0);
if ( bRes == 0 )
{
//----这个地方返回12003----
_snprintf(sz_msg, sizeof(sz_msg) - 1, "FtpGetFile Error:%d", GetLastError());
InsertLogs(sz_msg);
InternetCloseHandle(hConnect);
InternetCloseHandle(hInternet);
return 0;
}.