我做了一个打开文件夹的对话框,可以返回文件夹的路径,现在我想做一个函数,打开该文件夹中的一个文件,然后做一个循环,每次调用这个函数打开一个文件,还要保证每次循环打开的文件跟上次打开的文件不是同一个,是跟上一个文件挨着的文件。怎么处理,求指导MFC打开文件

解决方案 »

  1.   

    遍历文件夹,保存路径信息。
    CFileFind 
      

  2.   

    BOOL CXX::LookUpFile(const CString FolderPath, vector<CString>& vecOrderContent, CString strFlag)
    {
        WIN32_FIND_DATA FindFileData;
        HANDLE hFind = INVALID_HANDLE_VALUE;        CString strFolderTmp = FolderPath + _T("\\*");    hFind = FindFirstFile(strFolderTmp, &FindFileData);    if (hFind == INVALID_HANDLE_VALUE) 
        {
            return FALSE;
        } 
        else 
        {
            while (FindNextFile(hFind, &FindFileData) != 0)
            {
                if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                {
                    if ( (_tcscmp(FindFileData.cFileName, _T(".")) == 0) 
                        ||(_tcscmp(FindFileData.cFileName, _T("..")) == 0) )
                    {
                        continue;
                    }
                    CString strtem(FindFileData.cFileName);
                    CString strNextDirectry =  FolderPath + _T("\\") + strtem;
                    (void)LookUpFile(strNextDirectry, vecOrderContent, strFlag);
                } 
                else
                {
                    CString strTem(FindFileData.cFileName);  
    strTem.MakeLower();
                    if ((strTem.Find(strFlag) != -1))
                    {
                        vecOrderContent.push_back(FolderPath + _T("\\") + FindFileData.cFileName);
                        continue;
                    }
                }
            }        DWORD dwError = GetLastError();
            FindClose(hFind);
        }
        return TRUE;
    }
      

  3.   

    第一个参数:文件夹的路径;第二个参数:存放满足条件的文件路径名的vector:第三个参数:选择你需要的文件类型(比如:.jpg)
      

  4.   

    FindFirstFile FindNextFile 用这两个  网上好多例子的 我也做过这个 要不我找找我的源码?
      

  5.   

    好的 ,谢谢 !能帮忙发一下吗?[email protected]
      

  6.   

    1.给个指定目录
    2.使用CFileFind递归(如果有子文件夹)遍历该目录下面的文件.
    3.遍历的同时在,使用fopen打开文件就OK了!
      

  7.   

    CFindFile 递归查找文件,然后根据获取的文件目录一次打开。。