我要对一个目录下的所有.bmp图象进行处理,用了CFileFind::FindFile和CFileFind::FindNextFile,程序段落如下:CFileFind m_find;
if(m_find.FindFile("d:\\imagelib\\*.bmp",0)){
      m_find.FindNextFile();      do {             fileName=m_find.GetFilePath();
      .....
      }}可是执行完之后,总发现该目录下有一个.bmp没被处理,本来觉得应该在执行完FindFile之后,GetFilePath,可查msdn,说的明明的要在GetFilePath之前必需执行至少一次FindFileNext。哪位老兄老姐知道是咋回事呀??

解决方案 »

  1.   

    改成这样就可以了,应为根据MSDN要在GetFilePath之前必需执行至少一次FindNextFile,这样指针其实已经跳到了下一个,当最后一次FindNextFile出现错误时,此时的GetFilePath还是有效的,因为GetFilePath的指针比FindNextFile的指针要前一步。
        CString fileName;
    CFileFind m_find;
        if(m_find.FindFile("f:\\view\\*.jpg",0))
    {   //m_find.FindNextFile();
          while(m_find.FindNextFile())
      {             fileName = m_find.GetFilePath();
     m_List.AddString(fileName);
        
          }
          fileName = m_find.GetFilePath();
          m_List.AddString(fileName);
    }