环境为VS2008,unicode字符集,walker测试可行。

    1、选择目录(参考这里

 
  
  1. BROWSEINFO bi; 
  2. TCHAR Buffer[512]; 
  3. CString dir; 
  4. //初始化入口参数bi开始 
  5. bi.hwndOwner = NULL; 
  6. bi.pidlRoot = NULL; 
  7. bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框 
  8. bi.lpszTitle = _T("选择输出目录"); 
  9. bi.ulFlags = BIF_RETURNONLYFSDIRS; 
  10. bi.lpfn = NULL; 
  11. bi.iImage = 0; 
  12. //初始化入口参数bi结束 
  13. LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框 
  14. if(pIDList)//选择到路径(即:点了确定按钮) 
  15.     //取得文件夹路径到Buffer里 
  16.     SHGetPathFromIDList(pIDList, Buffer); 
  17.     dir = Buffer; 
  18. else//取消选择 
  19.     return ; 

 

    2、选择多个文件(参考这里

 
  
  1. CFileDialog dlgOpen(TRUE, 0, 0, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST,  
  2.     _T("DB Files(*.mdb;*.accdb)|*.mdb;*.accdb|All Files (*.*)|*.*||"), NULL); 
  3. dlgOpen.m_ofn.lpstrTitle = _T("添加待处理的文件"); 
  4. CString filename; 
  5. if(dlgOpen.DoModal() == IDOK) 
  6.     POSITION fileNamesPosition = dlgOpen.GetStartPosition(); 
  7.     while(fileNamesPosition != NULL) 
  8.     { 
  9.         filename = dlgOpen.GetNextPathName(fileNamesPosition); 
  10.     }   
  11. else  
  12.     return ;