avatar

取得系统特殊文件夹路径

1
2
3
4
5
6
7
8
9
10
function GetSpecialFolderDir(const folderid:integer):string;
var
   pidl:pItemIDList;
   buffer:array [ 0..255 ] of char ;
begin
   //取指定的文件夹项目表
   SHGetSpecialFolderLocation( application.Handle , folderid, pidl);
   SHGetPathFromIDList(pidl, buffer);    //转换成文件系统的路径
   result:=strpas(buffer);
end;

其中:folderid可以取下面的值:但是请注意,有些是虚的文件夹,不是文件系统
的一部分,所以用SHGetPathFromIDList是取不出路径的,但是在此也列出了。打’*’
号的为不是真正的文件系统,应该用作它用。

  CSIDL_BITBUCKET         *   回收站
  CSIDL_CONTROLS          *   控制面板
  CSIDL_DESKTOP           *   桌面

  CSIDL_DESKTOPDIRECTORY      桌面目录       //如C:\WINDOWS\Desktop
  CSIDL_DRIVES            *   我的电脑
  CSIDL_FONTS                 字体           //如C:\WINDOWS\FONTS
  CSIDL_NETHOOD               网上邻居目录   //如C:\WINDOWS\NetHood
  CSIDL_NETWORK           *   网上邻居
  CSIDL_PERSONAL              我的文档       //如C:\My Documents
  CSIDL_PRINTERS          *   打印机
  CSIDL_PROGRAMS              程序组         //如C:\WINDOWS\Start Menu\Programs
  CSIDL_RECENT                最近文档       //如C:\WINDOWS\Recent
  CSIDL_SENDTO                发送到         //如C:\WINDOWS\SentTo
  CSIDL_STARTMENU             开始菜单       //如C:\WINDOWS\Start Menu
  CSIDL_STARTUP               启动           //如C:\WINDOWS\启动
  CSIDL_TEMPLATES             模版           //如C:\WINDOWS\ShellNew

Comments ( 0 ) Trackbacks ( 0 ) Leave a Reply
  1. No comments yet.

    目前尚无任何评论.

    コメントはまだありません。

  2.                    
  1. No trackbacks yet.

    目前尚无任何 trackbacks 和 pingbacks.

    トラックバックはまだありません。

  • ☆*:.。. o(≧▽≦)o .。.:*☆
  • _(:з」∠)_
  • ♪(´ε` )
  • ψ(`∇´)ψ
  • (-_-#)
  • (=´∀`)人(´∀`=)
  • \(//∇//)\
  • ♪(*^^)o∀*∀o(^^*)♪
  • (((o(*゚▽゚*)o)))
  • (´・_・`)
  • σ(^_^;)
  • ( *`ω´)
  • (ノ`Д´)ノ
  • (( _ _ ))..zzzZZ
  • ( ̄▽ ̄)
  • ヽ(`Д´#)ノ
  • ((((;゚Д゚)))))))
  • (>_<)
  • (T_T)
  • ( T_T)\(^-^ )
  • ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘