我是想把某个文件夹中的bmp文件一个一个全部找出来
并且把他们的名字一个一个提取出来
我用以下代码完成功能
CFileDialog dlg(TRUE,"bmp",".bmp",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"位图文件(*.BMP)|*.BMP||");
if(dlg.DoModal()==IDOK)
{
    CFileFind finder;
    Work = finder.FindFile("*.BMP");
    while(Work)
    {
            Work=finder.FindNextFile();
        filename = finder.GetFileName();
}但是我不想在每次运行前都要打开一个对话框
然后找一个bmp文件打开才行。
我已经把文件的路径付给了一个CString变量,
请问如何把这个文件路径取进来
好让后面的FindFile函数能够在这个CString目录下寻找bmp文件?
谢谢!

解决方案 »

  1.   

    CFileFind finder;
    CString   sFilename;
    int       nCount   = 0;
    BOOL      bWorking;
    sDir = sDir + "\\*.*";
    bWorking= finder.FindFile(sDir.operator LPCTSTR());
    while(bWorking)
    {
    bWorking = finder.FindNextFile();
    if((finder.IsDots()))
    continue;

    if(!(finder.IsDirectory()))
    {
    sFilename = finder.GetFileName();
    if(sFilename.Right(4) == ".bmp")// bmp 文件
    nCount++;
    }
    }
    finder.Close();
      

  2.   

    查所有文件
    Find(LPCTSTR path)
    {
    CString strPath=path;
    CString str;

    if(strPath[strPath.GetLength()-1]!=_T('\\'))
    strPath+=_T('\\');
    strPath+="abcda.wmv";
    CFileFind finder; BOOL bWorking=finder.FindFile(strPath);
    while(bWorking)
    {
    bWorking=finder.FindNextFile();
    if(finder.IsDots())
    continue;
    if(!finder.IsDirectory())
    {
    //m_list1_c.AddString(finder.GetFilePath());
    }

    }
    strPath=path;
    if(strPath[strPath.GetLength()-1]!=_T('\\'))
    strPath+=_T('\\');
    strPath+="*.*";
    finder.Close();
    bWorking=finder.FindFile(strPath);
    while(bWorking)
    {
    bWorking=finder.FindNextFile();
    if(finder.IsDots())
    continue;
    if(finder.IsDirectory())
    Find(finder.GetFilePath());
    }}