怎么用标准C/C++打开windows explorer,选择文件,获取文件或文件夹路径?
3个回答
2011-11-03
展开全部
shellecute函数方法实现打开explorer,及打开一个目录,进行选择文件,获取文件或文件夹路径
GetCurrentDirectory 在一个缓冲区中装载当前目录
GetFullPathName 获取指定文件的完整路径名
看这样API函数的使用方法实现你所需要的功能。
GetCurrentDirectory 在一个缓冲区中装载当前目录
GetFullPathName 获取指定文件的完整路径名
看这样API函数的使用方法实现你所需要的功能。
展开全部
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返回的是完全路径
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';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件更换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询