使用SHGetSpecialFolderLocation+CSIDL_MYDOCUMENTS时SHBrowseForFolder不显示子目录
问题:使用CSIDL_MYDOCUMENTS时SHBrowseForFolder根目录显示为空
我通过SHGetSpecialFolderLocation()获取特殊目录的IDList项,代码如下:
_ = Win32API.Shell32.SHGetSpecialFolderLocation(hWndWindow, (int)RootDirectory, out IntPtr pidlRoot); // 通过特殊目录列表确定根目录的IDList
随后将该IDList作为根目录,调用SHBrowseForFolder()显示目录对话框:
pidlRet = Win32API.Shell32.SHBrowseForFolder(ref bi); // 显示目录对话框
但针对CSIDL_MYDOCUMENTS(0x005)执行操作时,目录对话框的根目录显示为空结构,尽管我的文档目录下实际存在子目录(见附图)。
用SHGetPathFromIDList()查询返回的PIDList,得到的是不存在的路径:
C:\Users\fred.aurich\Documents
而实际的用户文档目录为:
C:\Benutzer\fred.aurich\Dokumente
这是否是根目录显示为空的问题根源?如何让目录对话框通过CSIDL_MYDOCUMENTS正确显示子文件夹?(已尝试网络搜索、子文件夹显示调试,附带相关截图)
内容的提问来源于stack exchange,提问作者perlfred
相关产品推荐
相关产品推荐

