Delphi获取系统特殊路径
2013-07-23 15:12
351 查看
unit DemoMain; interface uses 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;
相关文章推荐
- 获取系统特殊文件夹路径(SHGetSpecialFolderLocation)
- 使用C#获取系统特殊文件夹路径的解决方法
- Delphi 获取系统路径(C:\Windows\System32)
- VC 获取系统特殊文件夹的路径如:系统目录,桌面等
- VC获取系统特殊文件夹的路径
- VC 获取系统特殊文件夹的路径如:系统目录,桌面等
- 【转】C#获取用户桌面等特殊系统路径
- delphi获取系统特定文件夹路径
- vb.net获取系统特殊文件夹路径方法
- .net获取系统特殊文件夹路径
- VC 获取系统特殊文件夹的路径如:系统目录,桌面等
- 获取系统特殊目录的路径。
- C#获取DLL、程序路径,C#获取桌面、收藏夹等特殊系统路径
- .Net获取系统特殊文件夹路径
- WINDOWS特殊系统路径获取方法
- C#获取DLL、程序路径,C#获取桌面、收藏夹等特殊系统路径
- 获取系统特殊路径如:我的文档,开始路径等
- VC 获取系统特殊文件夹的路径如:系统目录,桌面等
- C#获取用户桌面等特殊系统路径
- C#获取用户桌面等特殊系统路径