Windows目录树的创建和SHGetDesktopFolder介绍
Windows文件夹管理树的实现实质上是对Widows名空间的遍历。名空间的每隔文件夹都提供了一个IShellFolder接口。
遍历名空间的方法是:
1、调用SHGetDesktopFolder函数获得桌面文件夹的IShellFolder接口,桌面文件夹是文件夹管理树的根节点。
2、调用所获得的IShellFolder接口的EnumObjects成员函数列举出子文件夹。
3、调用IShellFolder的BindToObject成员函数获得子文件夹的IShellFolder接口。
重复2、3步骤,列举出某文件夹下的所有子文件夹。直到所获得的IShellFolder的接口为NULL为止。
其中,SHGetDesktopFolder方法参数的一些解析:
CSIDL_BITBUCKET 回收站
CSIDL_CONTROLS 控制面板
CSIDL_DESKTOP Windows 桌面Desktop
CSIDL_DESKTOPDIRECTORY Desktop的目录
CSIDL_DRIVES 我的电脑
CSIDL_FONTS 字体目录
CSIDL_NETHOOD 网上邻居
CSIDL_NETWORK 网上邻居虚拟目录
CSIDL_PERSONAL 我的文档
CSIDL_PRINTERS 打印机
CSIDL_PROGRAMS 程序组
CSIDL_RECENT 最近打开的文档
CSIDL_SENDTO "发送到"菜单项
CSIDL_STARTMENU 任务条启动菜单项
CSIDL_STARTUP 启动目录
CSIDL_TEMPLATES 文档模板