C++ Builder获取系统文件的路径

霍书
2023-12-01

取得路径的程序:(注意红色字体,由于博客显示问题,所以中间加了空格,大家自己把空格去掉即可)

// ---------------------------------------------------------------------------
#define NO_WIN32_LEAN_AND_MEAN
#inclu de <vcl.h>
#pragma hdrstop

#inclu de "Unit1.h"
#inclu de "shlobj.h "
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender) {
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
//定义快捷方式的数据文件名

char szDir[MAX_PATH];

if (S?(SHGetMalloc(&pShellMalloc))) {
// 取得快捷方式的PIDL

if (S?(SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl))){

// 把PIDL转换为路径名
if (SHGetPathFromIDList(pidl, szDir)) {
//szDir就是所要取得的路径

Label1->Caption = szDir;
}

pShellMalloc->Free(pidl);
}

pShellMalloc->Release();
}

}

 

将CSIDL_STARTUP变换成其他,如
CSIDL_ADMINTOOLS
表示当前用户的“管理工具”系统文件夹
CSIDL_APPDATA
表示当前用户的特定的应用程序数据存储文件夹,例如:C:\Documents and Settings\username\Application Data
CSIDL_BITB KET
表示回收站
CSIDL_COMMON_ADMINTOOLS
表示所有用户的“管理工具”系统文件夹
CSIDL_COMMON_ALTSTARTUP
表示所有用户的 (只支持WINDOWS NT 系统)
CSIDL_COMMON_APPDATA
表示所有用户的特定的应用程序数据存储文件夹,例如:C:\Documents and Settings\All Users\Application Data
CSIDL_COMMON_DESKTOPDIRECTORY
表示所有用户的“桌面”文件夹,例如:C:\Documents and Settings\All Users\Desktop。
CSIDL_COMMON_DOCUMENTS
表示所有用户的“我的文档”文件夹,例如:C:\Documents and Settings\All Users\Documents
CSIDL_COMMON_FAVORITES
表示所有用户的“我的收藏夹”文件夹。
CSIDL_COMMON_PROGRAMS
表示所有用户的“程序”文件夹,例如:C:\Documents and Settings\All Users\Start Menu\Programs
CSIDL_COMMON_STARTMENU
表示所有用户的“开始菜单”文件夹,例如:C:\Documents and Settings\All Users\Start Menu
CSIDL_COMMON_STARTUP
表示所有用户的“启动”文件夹,例如:C:\Documents and Settings\All Users\Start Menu\Programs\Startup
CSIDL_COMMON_TEMPLATES
表示所有用户的“模块”文件夹,例如:C:\Documents and Settings\All Users\Templates
CSIDL_CONTROLS
表示“控制面板”文件夹
CSIDL_COOKIES
表示当前用户Internet Explorer的cookie 文件夹,例如:C:\Documents and Settings\username\Cookies
CSIDL_DESKTOP
表示“桌面”虚拟文件夹,包含了计算机中的所有内容
CSIDL_DESKTOPDIRECTORY
表示当前用户的“桌面”文件夹,例如:C:\Documents and Settings\username\Desktop

转载于:https://www.cnblogs.com/blogpro/p/11446018.html

 类似资料: