将我的电脑上的硬盘以及每个硬盘的文件夹,还有文件夹包含的子文件夹,一直向内嵌套,直到它没有子文件夹。将它们给枚举出来。我自己写了一些,可以将我电脑上的硬盘给枚举出来,要将每个硬盘的文件夹给枚举出来,应该是可以递归的,我不知如何进行下去,请各位指教。共同探讨一下。

解决方案 »

  1.   

    我自己写的一个,可以列举给定目录下所有文件名字
    void ListFolder(CString sPath){
    CFileFind ff; BOOL bFound = ff.FindFile(sPath + "\\*.*");
    while(bFound){ bFound = ff.FindNextFile();
    CString sFilePath = ff.GetFilePath();
    if(ff.IsDirectory()){
    if(!ff.IsDots())
    ListFolder(sFilePath);
    } else ListFile(sFilePath);//这里记录的就是所有的文件
    }
    ff.Close();
    }
      

  2.   

    不是要用SHGetDesktopFolder SHGetSpecialFolderLocation EnumObjects 等这些Shell 函数吗,不然你怎么知道有几个硬盘呢
      

  3.   

    你不是说已经知道有几个盘了吗?
    ListFolder("c:\\");
    ListFolder("d:\\");
    ....
      

  4.   

    GetLogicalDriveStrings()可以得到有几个磁盘,然后用用FindFirstFile、FindNextFile