怎么用标准C/C++打开windows explorer,选择文件,获取文件或文件夹路径?

类似于MFC中的CFileDialog,但只用标准C/C++实现。... 类似于MFC中的CFileDialog,但只用标准C/C++实现。 展开
 我来答
匿名用户
2011-11-03
展开全部
shellecute函数方法实现打开explorer,及打开一个目录,进行选择文件,获取文件或文件夹路径
GetCurrentDirectory 在一个缓冲区中装载当前目录
GetFullPathName 获取指定文件的完整路径名
看这样API函数的使用方法实现你所需要的功能。
依赖dependence
2011-11-03 · 超过25用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:69.3万
展开全部
char szDir[100] ={0};
char szPath[255] = {0};
BROWSEINFO bi ;
bi.hwndOwner = m_hWnd ;
bi.pidlRoot = NULL ;
bi.lParam = NULL ;
bi.lpfn = NULL;
bi.lpszTitle = "选择";
bi.iImage = NULL ;
bi.ulFlags = BIF_BROWSEINCLUDEFILES ;
bi.pszDisplayName = szDir ; //存放的文件名字
ITEMIDLIST *pidl = ::SHBrowseForFolder(&bi);
SHGetPathFromIDList(pidl,szPath); // szPath返回的是完全路径
追问
我后来也是用这种方法实现的。但是有想到一个问题,BIF_BROWSEINCLUDEFILES 指定的是所有文件或文件夹的路径,如果我只需要文件的路径(程序中只需要文件路径,否则就会DOWN掉),该怎样设置参数呢?
追答
获取到全路径以后你处理一下不就可以了?
char *strrchr( const char *string, int c ); string 是字符串 c 就是要找的字符 你就找最后一个\\
char *pPath = strrchr(szPath,'\\');
*pPath = '\0';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缪琛展鸣玉
2019-04-13 · TA获得超过1057个赞
知道小有建树答主
回答量:1248
采纳率:90%
帮助的人:5.3万
展开全部
文件更换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式