HELP! CFtpConnection GetFile cause memory leaking, WHY?
I'm trying to use CFtpConnection GetFile to download files from a
WS_FTP server. I found if I download 1000 files (Size from 17KB to
25KB ), it can cause about 10M memory leaking. When I commented out
the GetFile( ) line, there was no memorry leaking. WHY?
Following is part of my source code:
try
{
// Request a connection to Image
Server
//Use default FTP Port
//Use Passive MODE
pConnect =
sess.GetFtpConnection(strISIP,strFtpUser,strFtpPwd,INTERNET_INVALID_PORT_NU=
=AD
MBER,TRUE);
//Change FTP folder
pConnect->SetCurrentDirectory(_T("/
Transfer"));
// use a file find object to enumerate
files
CFtpFileFind finder(pConnect);
// start looping
BOOL bFoundFile =
finder.FindFile(_T("*.pgp"));
while
((bFoundFile==TRUE)&&(nMaxImages<MAX_IMAGE_NUM))
{
bFoundFile =
finder.FindNextFile();
strRemoteName=finder.GetFileName();
strLocalName=strLocalPath
+strRemoteName;
// BOOL bFailIfExists =
FALSE,
//DWORD dwAttributes =
FILE_ATTRIBUTE_NORMAL,
// DWORD dwFlags =
FTP_TRANSFER_TYPE_BINARY,
// DWORD_PTR dwContext = 1
bGetFile=pConnect-
GetFile(strRemoteName,strLocalName,FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFE=
=ADR_TYPE_BINARY,
1);
If get File Remove the file;
if(bGetFile==TRUE)
{
pConnect-
Remove(strRemoteName);
}
nMaxImages++;
}
}
catch (CInternetException* pEx)
{
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
pEx->Delete();
}
// if the connection is open, close it
if (pConnect != NULL)
{
pConnect->Close();
delete pConnect;
}