在使用FindNextFile()与GetFileName()组合的时候发现,如果将一个目录下的文件全都遍历完之后,再使用FindNextFile()与GetFileName(),得到的filename会在第一个与最后一个之间来回切换,请问有什么办法可以解决这个问题?

解决方案 »

  1.   

    在前一个帖子中,我的代码已经附带了解决办法。每次FindNextFile()的返回值代表其后还有没有文件。如果没有,那么下一个循环就不用了,自然不会出现你所说的问题。
      

  2.   

    FindNextFile 返回false就停止循环。
      

  3.   

    哈哈,那你就等bk为false 的时候再来一次
    CFileFind finder;
    CString sName;
    BOOL bk = finder.FindFile("c:\\xx\\*.bmp");
    while(bk)
    {
      bk = finder.FindNextFile();
      sName = finder.GetFileName();
      AfxMessageBox(sName);
      if(!bk)
       {
         finder.close();
          bk = finder.FindFile("c:\\xx\\*.bmp");
      }
    }