用CFileDialog打开的是C:\test\1.txt
我想选取C:\test,然后获取test文件夹下所有的txt文件名,请问该如何做?
(我可以根据路径文件夹的路径获取所有文件名,现在的问题就是怎么样用CFileDialog选定并获取文件夹的路径)

解决方案 »

  1.   

    上msdn查一下CFileFind类的成员函数你就会用了
      

  2.   


    CString path;
    BROWSEINFO bi;
    ZeroMemory(&bi,sizeof(BROWSEINFO));
    bi.hwndOwner=GetSafeHwnd();
    bi.lpszTitle="abcdefg";
    bi.ulFlags=BIF_RETURNONLYFSDIRS; 
    LPITEMIDLIST pidl=SHBrowseForFolder(&bi);if(pidl == NULL)
    return;SHGetPathFromIDList(pidl,path.GetBuffer(MAX_PATH));
    path.ReleaseBuffer();if(path[path.GetLength()-1] != '\\')
    path+="\\*.txt";
    else
    path+="*.txt";CFileFind find;if(find.FindFile(path))
    {
    while(find.FindNextFile())
    {
    MessageBox(find.GetFilePath());
    }
    }
      

  3.   


    CString strFilter = "*.txt";
    CFileDialog FileDlg(TRUE, NULL, NULL, NULL, strFilter, this);
    if(FileDlg.DoModal() == IDCANCEL)
    return ;
    CString strFilePath = FileDlg.GetPathName();