c++获取磁盘容量信息和内存容量信息

c++获取磁盘容量信息

std::string GetSystemStorageUsed()
{
	long long all_Free = 0;
	long long all_Total = 0;
	long long used= 0;
	DWORD dwSize = MAX_PATH;
	TCHAR szLogicalDrives[MAX_PATH] = { 0 };


	DWORD dwResult = GetLogicalDriveStrings(dwSize, szLogicalDrives);


	if (dwResult > 0 && dwResult <= MAX_PATH)
	{
		TCHAR* szSingleDrive = szLogicalDrives;

		while (*szSingleDrive)
		{
			uint64_t available, total, free;
			if (GetDiskFreeSpaceEx(szSingleDrive, (ULARGE_INTEGER*)&available, (ULARGE_INTEGER*)&total, (ULARGE_INTEGER*)&free))
			{
				uint64_t Total, Available, Free;
				Total = total >> 20;
				Available = available >> 20;
				Free = free >> 20;

				all_Total += Total;   //总
				all_Free += Free;   //剩余
			}
			// 获取下一个驱动器号起始地址
			szSingleDrive += _tcslen(szSingleDrive) + 1;
		}
	}
	used= (all_Total-all_Free) * 1024 * 1024;
	return std::to_string(used);

c++获取内存数据

std::string GetSystemMemoryUsed()
{
	if (memorySpace == 0)
		GetSystemMemoryTotal();
	MEMORYSTATUSEX statusex;
	statusex.dwLength = sizeof(statusex);
	if (GlobalMemoryStatusEx(&statusex))
	{
		long long bit = statusex.ullAvailPhys;
		bit = memorySpace - bit;
		return std::to_string(bit);
	}
	return "";
}
//总内存
std::string GetSystemMemoryTotal()
	MEMORYSTATUSEX statusex;
	statusex.dwLength = sizeof(statusex);
	if (GlobalMemoryStatusEx(&statusex))
	{
		long long bit = statusex.ullTotalPhys;
		memorySpace = bit;
		return std::to_string(bit);
	}
	return "";

做个记录,防止遗忘。头文件参考之前的文章


版权声明:本文为mengxingchengshang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。