天天看點

MFC選擇目錄和多個檔案

  環境為VS2008,unicode字元集,walker測試可行。

BROWSEINFO bi; 

TCHAR Buffer[512]; 

CString dir; 

//初始化入口參數bi開始 

bi.hwndOwner = NULL; 

bi.pidlRoot = NULL; 

bi.pszDisplayName = Buffer;//此參數如為NULL則不能顯示對話框 

bi.lpszTitle = _T("選擇輸出目錄"); 

bi.ulFlags = BIF_RETURNONLYFSDIRS; 

bi.lpfn = NULL; 

bi.iImage = 0; 

//初始化入口參數bi結束 

LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//調用顯示選擇對話框 

if(pIDList)//選擇到路徑(即:點了确定按鈕) 

    //取得檔案夾路徑到Buffer裡 

    SHGetPathFromIDList(pIDList, Buffer); 

    dir = Buffer; 

else//取消選擇 

    return ; 

CFileDialog dlgOpen(TRUE, 0, 0, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST,  

    _T("DB Files(*.mdb;*.accdb)|*.mdb;*.accdb|All Files (*.*)|*.*||"), NULL); 

dlgOpen.m_ofn.lpstrTitle = _T("添加待處理的檔案"); 

CString filename; 

if(dlgOpen.DoModal() == IDOK) 

    POSITION fileNamesPosition = dlgOpen.GetStartPosition(); 

    while(fileNamesPosition != NULL) 

    { 

        filename = dlgOpen.GetNextPathName(fileNamesPosition); 

    }   

else