{
BROWSEINFO bi
ZeroMemory(&bi,sizeof(BROWSEINFO))
//添加提示语句
bi.lpszTitle= _T("请选择文件夹")
//添加"新建文件夹项"和"编辑框"
bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX
// 显示一个对话框让让用户选择文件夹
LPITEMIDLIST pidl = SHBrowseForFolder(&bi)
char szFolder[_MAX_PATH]
memset(szFolder, 0, sizeof(szFolder))
CString strFolder = _T("")
if (pidl != NULL)
{
SHGetPathFromIDList(pidl, szFolder)
//保存文件夹路径存
strFolder.Format(_T("%s"), szFolder)
afxMessageBox(strFolder)
}
else
{
return
}
}
void CXXXDlg::OpenFolder(){BROWSEINFO bi ZeroMemory(&bi,sizeof(BROWSEINFO)) //添加提示语句bi.lpszTitle= _T("请选择文件夹") //添加"新建文件夹项"和"编辑框"bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX // 显示一个对话框让让用户选择文件夹LPITEMIDLIST pidl = SHBrowseForFolder(&bi) char szFolder[_MAX_PATH] memset(szFolder, 0, sizeof(szFolder)) CString strFolder = _T("") if (pidl != NULL){SHGetPathFromIDList(pidl, szFolder) //保存文件夹路径存strFolder.Format(_T("%s"), szFolder) afxMessageBox(strFolder) }else{return }}把"通过选择得到一个文件/文件夹的路径" 这些代码实现 写到某个函数里,不是写到按钮实现的函数里就行了。例如:【以下代码中 filePathFile就是你想要的路径】
在主体函数中:
CFileDialog *lpszOpenFile //定义一个CfileDialog对象
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|")
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
{
filePathName = lpszOpenFile->GetPathName()//得到打开文件的路径
}
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!")
return
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)