VC 获取FTP所有文件列表的疑问
voidCLinkFTPDlg::BrowseFolder(CStringstrDir,CListCtrl*pLstCtrl,CArray<FILEITEM,FILEIT...
void CLinkFTPDlg::BrowseFolder(CString strDir,CListCtrl* pLstCtrl,
CArray<FILEITEM,FILEITEM&>* pFilesArr)
{
CFtpFileFind* RemoteFinder=new CFtpFileFind(m_pFTPConnection);
CFileFind* ff=RemoteFinder;
CString szDir=strDir;
if(szDir.Right(1)!="\\")
szDir+="\\*.*";
BOOL bFinded = ff->FindFile(szDir);
while (bFinded)
{
bFinded = ff->FindNextFile();
if (!ff->IsDirectory()&&!ff->IsDots())
{
FileItem[m_nFileNum].nItem=m_nFileNum;
FileItem[m_nFileNum].bDir=FALSE;
FileItem[m_nFileNum].StrFileName=ff->GetFileName();
m_nFileNum++;
pFilesArr->Add(FileItem[m_nFileNum]);
AddItem(pLstCtrl,m_nFileNum,FALSE,ff->GetFileName());
}
else if (ff->IsDirectory()&&!ff->IsDots())
{
BrowseFolder(ff->GetFilePath(),pLstCtrl,pFilesArr);
}
}
}
为什么第一次执行递归时,明明FTP目录存在 bFinded = ff->FindFile(szDir);
却返回0???????? 展开
CArray<FILEITEM,FILEITEM&>* pFilesArr)
{
CFtpFileFind* RemoteFinder=new CFtpFileFind(m_pFTPConnection);
CFileFind* ff=RemoteFinder;
CString szDir=strDir;
if(szDir.Right(1)!="\\")
szDir+="\\*.*";
BOOL bFinded = ff->FindFile(szDir);
while (bFinded)
{
bFinded = ff->FindNextFile();
if (!ff->IsDirectory()&&!ff->IsDots())
{
FileItem[m_nFileNum].nItem=m_nFileNum;
FileItem[m_nFileNum].bDir=FALSE;
FileItem[m_nFileNum].StrFileName=ff->GetFileName();
m_nFileNum++;
pFilesArr->Add(FileItem[m_nFileNum]);
AddItem(pLstCtrl,m_nFileNum,FALSE,ff->GetFileName());
}
else if (ff->IsDirectory()&&!ff->IsDots())
{
BrowseFolder(ff->GetFilePath(),pLstCtrl,pFilesArr);
}
}
}
为什么第一次执行递归时,明明FTP目录存在 bFinded = ff->FindFile(szDir);
却返回0???????? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询