環境為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