<Win32 API> 获取系统文件夹路径 GetModuleFileName

获取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;

}

这是我的结果:


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值