<Win32 API> 获取系统文件夹路径
Posted 小哈龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<Win32 API> 获取系统文件夹路径相关的知识,希望对你有一定的参考价值。
本文转载自:https://blog.csdn.net/meta_cpp/article/details/41959585
获取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;
这是我的结果:
以上是关于<Win32 API> 获取系统文件夹路径的主要内容,如果未能解决你的问题,请参考以下文章