获取系统特殊路径如:我的文档,开始路径等

本文介绍如何使用SHGetSpecialFolderLocation函数获取Windows系统的特殊文件夹路径,如桌面、我的文档等。通过指定不同的整数ID,可以定位到不同的系统默认文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  使用API函数SHGetSpecialFolderLocation。shlobj.h里有SHGetSpecialFolderLocation的原型声明。这个函数可以帮我们找到Windows的桌面目录、启动目录、我的文档目录等。    
          SHGetSpecialFolder需要三个参数。   第一个参数是HWND,它指定了"所有者窗口":在调用这个函数时可能出现的对话框或消息框。第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是:    
  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   文档模板    

 

 

TCHAR   szDocument[MAX_PATH]={0};  
  memset(m_lpszDefaultDir,0,_MAX_PATH);  
   
  LPITEMIDLIST pidl=NULL;  
  SHGetSpecialFolderLocation(NULL,   CSIDL_PERSONAL,   &pidl);  
  if   (pidl   &&   SHGetPathFromIDList(pidl,   szDocument))  
  {  
  GetShortPathName(szDocument,m_lpszDefaultDir,_MAX_PATH);  
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值