You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:12:38