NWH

埋骨何须桑梓地,人生无处不青山

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理
void GetFilePath(vector<CString>& vFilePathList,CString strDir) 
{ 
    CFileFind finder; 
    BOOL isNotEmpty = finder.FindFile(strDir+("*.*"));//总文件夹,开始遍历 
    while(isNotEmpty) 
    { 
        isNotEmpty = finder.FindNextFile();//查找文件 
        CString filename = finder.GetFilePath();//获取文件的路径,可能是文件夹,可能是文件 
        if (!(finder.IsDirectory())) 
        { 
            //如果是文件则加入文件列表 
            vFilePathList.push_back(filename);//将一个文件路径加入容器 
        } 
        else 
        { 
            //递归遍历用户文件夹,跳过非用户文件夹 
            if(!(finder.IsDots()||finder.IsHidden()||finder.IsSystem()||finder.IsTemporary()||finder.IsReadOnly())) 
            { 
                GetFilePath(vFilePathList,filename+_T("/")); 
            } 
        } 
    } 
}    



IsDots():判断文件是否为当前目录.或者为上级目录..
IsHidden():判断文件是否带有隐藏属性,即隐藏的文件。
IsSystem():判断文件是否为系统文件。
IsTemporary():判断文件是否为临时文件。
IsReadOnly():判断文件是否为只读文件。
IsDirectory():判读文件是否为文件夹。

条件变量必须是局部变量,不能声明为全局变量
第一个参数是保存每个路径的容器,第二个参数是遍历起点的文件夹
该函数会将遍历到的每一个文件的路径都加入容器

 

posted on 2017-09-15 10:59  -Cloud-  阅读(109)  评论(0)    收藏  举报