您的位置:首页 > 其它

获取指定目录下(包括子目录)的指定后缀的文件

2016-06-22 21:33 483 查看
获取指定目录下(包括子目录)的指定后缀的文件

#include <DIRECT.H>

/********************************************************/

/* Syntax:

/*         void FindMyFile(CString strPath, CString strSuffix, CStringArray& arrPath)  

/* Remarks:

/*        Find files with specified suffix in specified directory.

/* Return Values:

/*        None.

/* Parameters:

/* strPath: 

/*        Directory for search.

/* strSufffix:

/*        File Suffix.

/* arrPath:

/*        A array used to store the full Path of file.

/* Author:

/*        lixiaosan

/* Create Date:

/*        April 07 2006

/********************************************************/

void CTest6Dlg::FindMyFile(CString strPath, 

                           CString strSuffix, 

                           CStringArray& arrPath) 



    BOOL bFind, bFindSuffix; 

    CFileFind tempFind, tempFind1; 

     

    _chdir(strPath); 

    bFind = tempFind.FindFile(_T("*.*")); 

     

    while ( bFind ) 

    { 

        bFind = tempFind.FindNextFile(); 

        if (tempFind.IsDirectory()) 

        { 

            if ( !tempFind.IsDots() ) 

            { 

                CString strTempPath; 

                strTempPath = tempFind.GetFilePath(); 

                FindMyFile(strTempPath);  

            } 

        } 

    } 

     

    _chdir(strPath); 

    bFindSuffix = tempFind1.FindFile(_T("*.*")); 

     

    while (bFindSuffix) 

    { 

        bFindSuffix = tempFind1.FindNextFile(); 

        CString strFilePath, strFileName; 

        if ( !tempFind1.IsDirectory() && !tempFind1.IsDots() ) 

        { 

            strFilePath = tempFind1.GetFilePath(); 

            strFileName = tempFind1.GetFileName(); 

            strFileName.MakeUpper();

            strSuffix.MakeUpper(); 

            if ( strFileName.Right(3) == strSuffix ) 

            { 

                arrPath.Add(strFilePath); 

            } 

        } 

    } 

    tempFind.Close(); 

    tempFind1.Close(); 

}

调用方法

    CStringArray arrFilePath;

    CString strTemp;

    FindMyFile(_T("d:\\temp\\"), _T("txt"), arrFilePath);

    for(int i=0; i<arrFilePath.GetSize(); i++) 

    { 

        strTemp += arrFilePath[i] + _T("\r\n");         

    } 

    AfxMessageBox(strTemp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: