SHGetSpecialFolderPathA/SHGetFolderPathA/SHGetKnownFolderPath - 获取指定的系统路径
获取指定路径有三个函数,分别是:
SHGetSpecialFolderPathA(HWND hwnd, LPSTR pszPath, int csidl, BOOL fCreate) BOOL;【已不再支持】
SHGetFolderPathA(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPSTR pszPath) BOOL;【已丢弃】
SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath
) BOOL;
前两个函数使用CSIDL 来识别系统路径,SHGetKnownFolderPath 则使用CSIDL转化后的KNOWNFOLDERID标志来识别系统目录。
pszPath:返回路径的缓冲区
nFolder:标识代号
fCreate:true :如果文件夹不存在则创建,false:不创建
dwFlags: 附加的获取选项。默认为0,其它更多Folder Flag
hToken: 代表特定用户的access token.
pszPath和nFolder对应关系:
nFolder
|
pszPath
|
0
|
C:/Documents and Settings/当前用户/桌面
|
2
|
C:/Documents and Settings/当前用户/「开始」菜单/程序
|
5
|
C:/Documents and Settings/当前用户/My Documents
|
6
|
C:/Documents and Settings/当前用户/Favorites
|
7
|
C:/Documents and Settings/当前用户/「开始」菜单/程序/启动
|
8
|
C:/Documents and Settings/当前用户/Recent
|
9
|
C:/Documents and Settings/当前用户/SendTo
|
11
|
C:/Documents and Settings/当前用户/「开始」菜单
|
13
|
C:/Documents and Settings/当前用户/My Documents/My Music
|
14
|
C:/Documents and Settings/当前用户/My Documents/My Videos
|
16
|
C:/Documents and Settings/当前用户/桌面
|
19
|
C:/Documents and Settings/当前用户/NetHood
|
20
|
C:/WINDOWS/Fonts
|
21
|
C:/Documents and Settings/当前用户/Templates
|
22
|
C:/Documents and Settings/All Users/「开始」菜单
|
23
|
C:/Documents and Settings/All Users/「开始」菜单/程序
|
24
|
C:/Documents and Settings/All Users/「开始」菜单/程序/启动
|
25
|
C:/Documents and Settings/All Users/桌面
|
26
|
C:/Documents and Settings/当前用户/Application Data
|
27
|
C:/Documents and Settings/当前用户/PrintHood
|
28
|
C:/Documents and Settings/当前用户/Local Settings/Application Data
|
31
|
C:/Documents and Settings/All Users/Favorites
|
32
|
C:/Documents and Settings/当前用户/Local Settings/Temporary Internet Files
|
33
|
C:/Documents and Settings/当前用户/Cookies
|
34
|
C:/Documents and Settings/当前用户/Local Settings/History
|
35
|
C:/Documents and Settings/All Users/Application Data
|
36
|
C:/WINDOWS
|
37
|
C:/WINDOWS/system32
|
38
|
C:/Program Files
|
39
|
C:/Documents and Settings/当前用户/My Documents/My Pictures
|
40
|
C:/Documents and Settings/当前用户
|
43
|
C:/Program Files/Common Files
|
45
|
C:/Documents and Settings/All Users/Templates
|
46
|
C:/Documents and Settings/All Users/Documents
|
47
|
C:/Documents and Settings/All Users/「开始」菜单/程序/管理工具
|
48
|
C:/Documents and Settings/当前用户/「开始」菜单/程序/管理工具
|
53
|
C:/Documents and Settings/All Users/Documents/My Music
|
54
|
C:/Documents and Settings/All Users/Documents/My Pictures
|
55
|
C:/Documents and Settings/All Users/Documents/My Videos
|
56
|
C:/WINDOWS/resources
|
59
|
C:/Documents and Settings/当前用户/Local Settings/Application Data/Microsoft/CD Burning
|
易语言实例
szPath = 取空白文本 (255)
SHGetSpecialFolderPath (0, szPath, 26, 0) ‘取得当前用户的Application Data路径
SHGetSpecialFolderPath (0, szPath, 26, 0) ‘取得当前用户的Application Data路径