在使用GetFileName()时,程序运行到这里会出错

wo414145779 2012-11-30 03:18:30
f (pConnection!=NULL)
{// 创建CFtpFileFind对象,向构造函数传递CFtpConnection对象的指针
pFileFind=new CFtpFileFind(pConnection);
bContinue=pFileFind->FindFile("*"); // 查找服务器上当前目录的任意文件
if (!bContinue) // 如果一个文件都找不到,结束查找
{
pFileFind->Close();
pFileFind=NULL;
}

while (bContinue) // 找到了第一个文件,继续找其它的文件
{
strFileName=pFileFind->GetFileName(); // 获得找到的文件的文件名
// 如果找到的是否目录,将目录名放在括弧中
if (pFileFind->IsDirectory()) strFileName="["+strFileName+"]";
// 将找到的文件或目录名显示在列表框中。
m_listFile.AddString(strFileName);
bContinue=pFileFind->FindNextFile(); // 查找下一个文件
}

if (pFileFind!=NULL)
{
pFileFind->Close(); // 结束查询
pFileFind=NULL;
}

这些代码是我在网上找到的编译没有问题,但是运行到GetFileName()时程序就是出错
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我收回我刚才说的。。 // FindNextFile 在遇到最后一个文件时会返回0 。所以如果放在最后调用,此时bContinue =0,会漏掉最后一个文件夹。 所以FindNextFile 要放在GetFileName 前面调用,才不会漏文件夹。 bContinue = pFileFind->FindFile(L"*"); if (!bContinue ) { pFileFind->Close(); pFileFind = NULL; } while (bContinue) { // FindNextFile 在遇到最后一个文件过后会返回0 。所以如果放在最后调用,此时bContinue =0,会漏掉最后一个文件夹。 bContinue = pFileFind->FindNextFile(); m_strFileNmae = pFileFind->GetFileName(); if (pFileFind->IsDirectory()) m_strFileNmae = L"[" + m_strFileNmae + L"]"; m_listFileInfo.AddString(m_strFileNmae); }
  • 打赏
  • 举报
回复
但是使用 bContinue=pFileFind->FindNextFile(); // 查找下一个文件 strFileName=pFileFind->GetFileName(); // 获得找到的文件的文件名 会漏掉第一个文件夹。
wo414145779 2012-11-30
  • 打赏
  • 举报
回复
引用 2 楼 hfz8867879 的回复:
bContinue=pFileFind->FindNextFile(); // 查找下一个文件 strFileName=pFileFind->GetFileName(); // 获得找到的文件的文件名 这样
---------------------------------------------------- 谢谢
九州剑王 2012-11-30
  • 打赏
  • 举报
回复
bContinue=pFileFind->FindNextFile(); // 查找下一个文件 strFileName=pFileFind->GetFileName(); // 获得找到的文件的文件名 这样
九州剑王 2012-11-30
  • 打赏
  • 举报
回复
FindNextFile();

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧