怎样得到指定目录下的所有文件名
用win32, C或者MFC都行
新手,请大牛们给个意见

解决方案 »

  1.   

    HANDLE hFind;
    WIN32_FIND_DATA DataFind;
    int bMoreFile=1;
    CString temp=FileDir+"\\*.*";
    hFind=FindFirstFile(temp,&DataFind);
    while(hFind!=INVALID_HANDLE_VALUE&&bMoreFile==1)
    {              //如果是文件
    if(DataFind.dwFileAttributes==FILE_ATTRIBUTE_ARCHIVE)
    {
    FileList.AddTail(FileDir+"\\"+DataFind.cFileName);
    FileCount++; 
    }
    else
    {                                 //如果是目录
    if(DataFind.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
    {
    if(strcmp(DataFind.cFileName,"."))
    {
    if(strcmp(DataFind.cFileName,".."))
    {
                                                   //.................
    }
    }
    }
    }
    bMoreFile=FindNextFile(hFind,&DataFind);
    }
    FindClose(hFind);
    如果要得到所有的文件,还要用到递归,总之方法就是这样,你考虑一下
      

  2.   

    http://blog.csdn.net/lixiaosan/archive/2006/04/07/654277.aspx
      

  3.   

    谢谢楼上各位
    我也用MFC实现了
      CFileFind fileFind;
      BOOL bContinue;
      CString str;
      int index;//::SetCurrentDirectory(m_path);
      bContinue = fileFind.FindFile("*.*");  m_ListCtrl1.SetRedraw(FALSE);
      m_ListCtrl1.DeleteAllItems();  index = 0;
      while (bContinue)
      {
        bContinue = fileFind.FindNextFile();    if(fileFind.IsHidden()) continue;
        if(fileFind.IsDirectory())  continue;    str = fileFind.GetFileName();
        m_ListCtrl.InsertItem(index++, str);
      }
      m_ListCtrl.SetRedraw(TRUE);我还想知道有没有
    用C语言或者批处理的方法