获取Windows系统文件夹,如我的文档,临时文件夹,桌面,System32文件夹,Windows目录,Program Files应用程序目录等,系统提供了相应的API。
下面是一个简单的示例:
首先需要include:
#include <Shlobj.h>
void GetSystemDir()
{
wchar_t buffer[MAX_PATH+1] = {0};
wcout.imbue(locale("chs"));
GetModuleFileName(NULL, buffer, MAX_PATH);
wcout << L"当前exe路径: " << buffer << endl;
GetCurrentDirectory(MAX_PATH, buffer);
wcout << L"当前路径: " << buffer << endl;
GetSystemDirectory(buffer, MAX_PATH);
wcout << L"System: " << buffer << endl;
GetTempPath(MAX_PATH, buffer); // 末尾带'\'
wcout << L"Temp: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_LOCAL_APPDATA, FALSE);
wcout << L"Local APPDATA: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_DESKTOP, FALSE); // 桌面文件夹
wcout << L"桌面: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_DESKTOPDIRECTORY, FALSE);
wcout << L"桌面: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_MYDOCUMENTS/*CSIDL_PERSONAL*/, FALSE);
wcout << L"我的文档: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_PROGRAM_FILES, FALSE);
wcout << L"应用程序目录: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_PROGRAMS, FALSE); // 开始菜单 Prgrams
wcout << L"开始程序目录: " << buffer << endl;
SHGetSpecialFolderPath(GetDesktopWindow(), buffer, CSIDL_WINDOWS, FALSE);
wcout << L"Windows目录: " << buffer << endl;
}这是我的结果:
本文介绍了一种使用C++编程语言通过Windows API获取系统文件夹路径的方法,包括我的文档、桌面、临时文件夹等重要目录。
969

被折叠的 条评论
为什么被折叠?



