代码如下
WIN32_FIND_DATA fd;
HANDLE hd=::FindFirstFile((LPCTSTR)FilePath,&fd);
//把文件名插入listctrl
m_MessageList.InsertItem(i, sPriority);
m_MessageList.SetItemText(i, 2, fd.cFileName);
while(FindNextFile(hd,&fd))
{
//把文件名插入listctrl       
i++; 
m_MessageList.InsertItem(i, rstring);
m_MessageList.SetItemText(i, 2, fd.cFileName);  
};
FindClose(hd); listctrl列表的前两个文件名是.和..
这是什么?是目录吗?怎么才能查找时不要这两个?

解决方案 »

  1.   

    .表示当前目录,..表示上级目录。
    其实你在命令行下用dir都可以看到。
    它们是实际存在的,你可以手动进行过滤。附带说一句,这个循环你最好用do-while的:
    WIN32_FIND_DATA fd;
    HANDLE hd=::FindFirstFile((LPCTSTR)FilePath,&fd);
    do
    {
      if (fd.cFileName[0] != '.')
      {
        //把文件名插入listctrl       
        i++; 
        m_MessageList.InsertItem(i, rstring);
        m_MessageList.SetItemText(i, 2, fd.cFileName);  
      }
    } while (FindNextFile(hd,&fd))
    FindClose(hd);
      

  2.   

    http://community.csdn.net/Expert/topic/3244/3244832.xml?temp=.6674616
    建议现在论坛上搜一下