MFC如何遍历一个文件夹下的所有文件夹(不是文件,是文件夹)

MFC如何遍历一个文件夹下的所有文件夹(不是文件,是文件夹),第1张

用下面的

程序段

可以实现你要求的功能

CFileFind

ff

CString

strDir=

"d:\\Program

Files\\*.*"

BOOL

res

=

ff.FindFile(strDir)

while(res)

{

res

=

ff.

FindNextFile

if(ff.IsDirectory()

&&

(!ff.IsDots()))()//遍历子目录,剔除".0”和".."两个

{

CString

strFile

=

ff.

GetFileName

()

//

在这里写需要的代码

}

}

ff.Close()

//

不要忘记关闭

若满意请及时采纳,谢谢

// 此函数实现遍历指定路径中的文件。你需要做的就是验证文件的后缀名。

#include "iostream"  

#include "windows.h"  

using namespace std     

void show_file(char path[], int level = 0)  

{  

    char find_path[128]  

    sprintf(find_path, "%s*", path)  

    WIN32_FIND_DATA FindFileData  

    HANDLE hFind  

    bool bContinue = true  

    hFind = FindFirstFile(find_path, &FindFileData)  

    if (hFind == INVALID_HANDLE_VALUE)   

        return  

    while (bContinue)  

    {  

        if (stricmp(FindFileData.cFileName, "..") && stricmp(FindFileData.cFileName, "."))  

        {  

            for (int i = 0 i < level ++i)  

                cout<<"  "  

            cout<<FindFileData.cFileName<<endl  

            if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)  

            {  

                sprintf(find_path, "%s%s\\", path, FindFileData.cFileName)  

                show_file(find_path, level + 1)  

            }  

        }  

        bContinue = FindNextFile(hFind, &FindFileData)  

    }  

}  

int main()     

{     

    char szPath[] = "c:\\windows\\"  

    show_file(szPath)  

    return 0  

}

这个是删除文件的用法,找到文件和删除文件都差不多。用CFileFinder可以遍历。

void DelFiles(CString& strDirPath, CString strFileName, BOOL bDelAll)  

{  

    CFileFind FileFinder  

    strDirPath  = strDirPath + _T("\\")  

    CString strFilePath = strDirPath + strFileName  

  

    while (TRUE)  

    {  

        if (FileFinder.FindFile(strFilePath))  

        {  

            FileFinder.FindNextFile()  

            CString strDelFilePath  = FileFinder.GetFileName()  

            strDelFilePath = strDirPath + strDelFilePath  

            DelDirectory(strDelFilePath)  

  

            if (!bDelAll)  

            {  

                break  

            }  

        }  

        else  

        {  

            break  

        }  

    }  

    FileFinder.Close()  

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8143607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存