用VC打开一个文件夹,并且求出里面的文件个数。请教各位大哥,如何做呢??最好给出源程序代码,非常感谢!!!!!!!!!

解决方案 »

  1.   

    BOOL bContinue;
             int nCount=0;
      bContinue=finder.FindFile("D:\\data\\sample\\ge\\*.dat");
    bContinue=finder.FindNextFile();
    while(bContinue)
    {
                      nCount++; bContinue=finder.FindNextFile();
    }
      

  2.   

    //可能有問題.你自己調試.這是一個.應該有更好的方式.SHFolder**來者.或者其他.
    int ****::GetFileNumbers(CString csSourceFolder)  //GetFileNumbers("c:\\windows");
    { int nNums=0;
      CFileFind f;
      BOOL bFind=f.FindFile(csSourceFolder+"\\*.*");
      while(bFind){
        bFind = f.FindNextFile();
        if(f.IsDots()) continue;
        if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個
      

  3.   

    while(bFind){
        bFind = f.FindNextFile();
        if(f.IsDots()) continue;
        if(f.IsDirectory()) nNums += GetFileNumbers(csSourceFolder+"\\"+f.GetFileName());//下面表示找到一個
        nNums++;
     }
    }
      

  4.   

    #include <io.h>bool CBrowseDir::BrowseDir(const char *dir,const char *filespec)
    {
    _chdir(dir); //首先查找dir中符合要求的文件
    long hFile;
    _finddata_t fileinfo;
    if ((hFile=_findfirst(filespec,&fileinfo)) != -1)
    {
    do
    {
    //检查是不是目录
    //如果不是,则进行处理
    if (!(fileinfo.attrib & _A_SUBDIR))
    {
    char filename[_MAX_PATH];
    strcpy(filename,dir);
    strcat(filename,fileinfo.name);
    if (!ProcessFile(filename))//文件计数处理
    return false;
    }
    } while (_findnext(hFile,&fileinfo) == 0);
    _findclose(hFile);
    }
         return true;
    }e.g. BrowseDir("C:\\Sample","*.x");
      

  5.   

    foxmail(萧遥)的程序只能找到文件夹下一层的所有文件(注意:还有可能找到的是文件夹),如果还要求出该文件佳下的所有文件(包括子目录下的所有文件) 还需要递归调用.
      

  6.   

    用CFindFile类,注意如果楼上说的问题,CFindFile类的用法去看msdn
      

  7.   

    更正:
    我的程序少找一个
    因为 bContinue=finder.FindNextFile();
    当bContinue是false的时候还是找到了一个(最后一个)我刚发现的