打开文件:
CString gReadFilePathName;
CFileDialog fileDlg(true, _T("mp3"), _T("*.mp3"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("mp3 Files (*.mp3)|*.mp3|wav File(*.wav)|*.wav|All File (*.*)|*.*||"), NULL);
if (fileDlg.DoModal() == IDOK) //弹出对话框
{
gReadFilePathName = fileDlg.GetPathName();//得到完整的文件名和目录名拓展名
GetDlgItem(IDC_EDIT1)->SetWindowText(gReadFilePathName);//将路径显示
CString filename = fileDlg.GetFileName();
}
打开文件夹:
CFileFind finder;
CString path;
BOOL fileExist;
// 获取特定文件夹的LPITEMIDLIST,可以将之理解为HANDLE
// 所谓的特定文件夹,你可以用CSIDL_XXX来检索之。
LPITEMIDLIST rootLoation;
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &rootLoation);
if (rootLoation == NULL) {
// unkown error
return;
}
// 配置对话框
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(bi));
bi.pidlRoot = rootLoation; // 文件夹对话框之根目录,不指定的话则为我的电脑
bi.lpszTitle = _T("对话框抬头"); // 可以不指定
// bi.ulFlags = BIF_EDITBOX | BIF_RETURNONLYFSDIRS;
// 打开对话框, 有点像DoModal
LPITEMIDLIST targetLocation = SHBrowseForFolder(&bi);
if (targetLocation != NULL) {
TCHAR targetPath[MAX_PATH];
SHGetPathFromIDList(targetLocation, targetPath);
//MessageBox( targetPath );
GetDlgItem(IDC_EDIT1)->SetWindowText(targetPath);//将路径显示
}