Delphi获取系统特殊路径

来源:互联网 发布:淘宝上面卖中药的店 编辑:程序博客网 时间:2024/05/16 10:24

unit DemoMain;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ShlObj, ComCtrls, StdCtrls, Registry;type  TForm1 = class(TForm)    ListView1: TListView;    Button1: TButton;    Edit1: TEdit;    Button2: TButton;    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);  private    procedure AddListItem(LCaption, LSubItem: string);    procedure AddToListView;    function GetSpecialFolderDir(const folderid: integer): string;    function GetMyDocPath: string;  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.AddListItem(LCaption, LSubItem: string);var  I: TListItem;begin  i := ListView1.Items.Add;  i.Caption := LCaption;  i.SubItems.Add(LSubItem);end;procedure TForm1.AddToListView;begin  AddListItem('桌面', GetSpecialFolderDir(0));  AddListItem('所有用户桌面', GetSpecialFolderDir(25));  AddListItem('开始菜单程序', GetSpecialFolderDir(2));  AddListItem('所有用户开始菜单程序', GetSpecialFolderDir(23));  AddListItem('我的文档', GetSpecialFolderDir(5));  AddListItem('收藏夹', GetSpecialFolderDir(6));  AddListItem('所以用户收藏夹', GetSpecialFolderDir(31));  AddListItem('启动文件夹', GetSpecialFolderDir(7));  AddListItem('所有用户启动文件夹', GetSpecialFolderDir(24));  AddListItem('Recent文件夹', GetSpecialFolderDir(8));  AddListItem('发送到', GetSpecialFolderDir(9));  AddListItem('登陆用户开始菜单', GetSpecialFolderDir(11));  AddListItem('所有用户开始菜单', GetSpecialFolderDir(22));  AddListItem('网上邻居', GetSpecialFolderDir(19));  AddListItem('字体文件夹', GetSpecialFolderDir(20));  AddListItem('Template文件夹', GetSpecialFolderDir(21));  AddListItem('所有用户Template文件夹', GetSpecialFolderDir(45));  AddListItem('ApplicaionData 文件夹', GetSpecialFolderDir(26));  AddListItem('打印文件夹', GetSpecialFolderDir(27));  AddListItem('当前用户本地应用程序设置文件夹', GetSpecialFolderDir(28));  AddListItem('Internet临时文件夹', GetSpecialFolderDir(32));  AddListItem('Internet缓存文件夹', GetSpecialFolderDir(33));  AddListItem('当前用户历史文件夹', GetSpecialFolderDir(34));  AddListItem('所有用户应用程序设置文件夹', GetSpecialFolderDir(35));  AddListItem('Windows系统目录', GetSpecialFolderDir(36));  AddListItem('程序文件夹', GetSpecialFolderDir(38));  AddListItem('System32系统目录', GetSpecialFolderDir(37));  AddListItem('当前用户图片收藏夹', GetSpecialFolderDir(39));  AddListItem('当前用户文件夹', GetSpecialFolderDir(40));  AddListItem('公共文件夹', GetSpecialFolderDir(43));  AddListItem('管理工具', GetSpecialFolderDir(47));  AddListItem('登陆用户管理工具', GetSpecialFolderDir(48));  AddListItem('所有用户图片收藏夹', GetSpecialFolderDir(54));  AddListItem('所有用户视频收藏夹', GetSpecialFolderDir(55));  AddListItem('主题资源文件夹', GetSpecialFolderDir(56));  AddListItem('CD Burning', GetSpecialFolderDir(59));end;function TForm1.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;procedure TForm1.Button1Click(Sender: TObject);begin  AddToListView;end;function TForm1.GetMyDocPath: string;var  Reg: TRegistry;begin  Reg := TRegistry.Create;  try    Reg.RootKey := HKEY_CURRENT_USER;    if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False) then    Result := Reg.ReadString('Personal')  finally    Reg.CloseKey;    Reg.Free;  end;end;procedure TForm1.Button2Click(Sender: TObject);begin  Edit1.Text := GetMyDocPath;end;end.


WinAPI: GetTempPath - 获取临时文件夹路径

//声明:GetTempPath(  nBufferLength: DWORD; {缓冲区大小}  lpBuffer: PChar       {缓冲区}): DWORD;               {返回实际长度}//举例:var  arr: array[0..MAX_PATH] of Char;  num: DWORD;  TempPath, TempFileName: string;begin  num := GetTempPath(MAX_PATH, arr);  ShowMessage(arr);           {C:\DOCUME~1\wy\LOCALS~1\Temp\}  ShowMessage(IntToStr(num)); {29}  TempPath := arr;  ShowMessage(TempPath);  //临时文件路径  SetLength(TempFileName, MAX_PATH);  GetTempFileName(PChar(TempPath), 'EXR', 0, PChar(TempFileName));  //获取临时文件名  SetLength(TempFileName, StrLen(PChar(TempFileName)));  ShowMessage(TempFileName);  //临时文件名end;




原创粉丝点击