我正在尝试实现一个独立于平台的文件/目录树浏览器。基本上,我试图复制Windows资源管理器的树控件来浏览计算机。但是,我无法弄清楚如何找到“桌面”或“我的电脑”文件夹字符串(它改变了每个pc和os类型,版本和语言)。如果我能找到一种获取最顶层文件夹字符串的方法,那么我可以遍历并填充树。某个地方是否有注册表字符串?
最初,我只针对MS Windows操作系统(XP,Vista等),但后来我也计划支持Linux和Mac。我为我的GUI使用wxWidgets,但我对这个特定问题的所有建议持开放态度。哦,我在VS2008中使用C ++。
答案 0 :(得分:2)
忽略可移植性,您需要的是“PIDL”树。 PIDL是文件路径的概括。您可以使用SHGetFolderLocation获取特殊文件夹的PIDL。桌面为CSIDL_DESKTOP
(不 CSIDL_DESKTOPDIRECTORY
),“我的电脑”为CSIDL_DRIVES
。
要将PIDL转换为名称,请查看SHGetNameFromIDList
答案 1 :(得分:1)
查看SHGetFolderPath功能。