0

我正在尝试实现一个独立于平台的文件/目录树浏览器。基本上,我正在尝试复制 Windows 资源管理器的树控件来浏览计算机。但是,我不知道如何找到“桌面”或“我的电脑”文件夹字符串(它在每台电脑和操作系统类型、版本和语言中都会发生变化)。如果我能找到一种方法来获取最顶层的文件夹字符串,那么我就可以遍历并充满希望地填充树。某处是否有注册表字符串?

最初,我只针对 MS Windows 操作系统(XP、Vista 等),但后来我也计划支持 Linux 和 Mac。我将 wxWidgets 用于我的 GUI,但我愿意接受针对此特定问题的所有建议。哦,我在 VS2008 中使用 C++。

4

2 回答 2

2

忽略可移植性,您需要的是“PIDL”树。PIDL 是文件路径的概括。您可以使用SHGetFolderLocation获取特殊文件夹的PIDL 。桌面是CSIDL_DESKTOP不是 CSIDL_DESKTOPDIRECTORY),我的电脑是CSIDL_DRIVES

要将 PIDL 转换为名称,请查看SHGetNameFromIDList

于 2009-04-07T14:49:19.687 回答
1

看看SHGetFolderPath函数。

于 2009-04-07T14:42:46.660 回答