21xrx.com
2025-07-05 23:00:24 Saturday
文章检索 我的文章 写文章
C++获取硬盘信息
2023-07-03 11:26:45 深夜i     29     0
C++ 获取 硬盘信息 操作系统 存储设备

在计算机程序设计中,获取计算机硬件信息是很常见的需求。其中,硬盘信息是非常重要的,因为它包含了存储在计算机上的所有数据。在C++编程语言中,有以下几种方法可以获取硬盘信息:

1. 使用Windows API函数

通过调用Windows API函数,可以获取硬盘的大小、分区数和序列号等信息。其中,GetDiskFreeSpaceEx函数可以获取硬盘空闲空间,GetVolumeInformation函数可以获取硬盘的文件系统和序列号。

示例代码如下:

#include <Windows.h>
int main()
{
  ULARGE_INTEGER freeSpaceAvailable, totalSpace, totalFreeSpace;
  WCHAR volumeName[MAX_PATH + 1] = { 0 };
  WCHAR fileSystemName[MAX_PATH + 1] = { 0 };
  DWORD serialNumber = 0;
  if (GetDiskFreeSpaceExW(NULL, &freeSpaceAvailable, &totalSpace, &totalFreeSpace))
  {
    //获取硬盘空闲空间
    printf("Total free space: %llu bytes\n", totalFreeSpace.QuadPart);
  }
  if (GetVolumeInformationW(L"C:\\", volumeName, MAX_PATH + 1, &serialNumber, NULL, NULL, fileSystemName, MAX_PATH + 1))
  {
    //获取硬盘序列号
    printf("Volume serial number: %lu\n", serialNumber);
  }
  return 0;
}

2. 使用第三方库

C++中有很多第三方库,可以方便地获取硬盘信息。比如,通过使用WinAPIEx库,可以获取硬盘的SMART信息,包括温度、错误率、电源开/关状态等。

示例代码如下:

#include <WinAPIEx.h>
int main()
{
  std::vector<WinAPIEx::SmartDriveInfo> driveInfo = WinAPIEx::GetSmartDriveInfo();
  for (const auto& info : driveInfo)
  {
    printf("%S Temperature: %d C, Power on hours: %d\n", info.Model.c_str(), info.CurrentTemperature, info.PowerOnHours);
  }
  return 0;
}

总之,使用C++编程可以轻松获取计算机硬盘信息。开发人员可以根据自己的需求选择不同的方法,以获取最准确的硬盘信息。

  
  
下一篇: C++高级教程

评论区