使用 C# 如何提取有关本地计算机上存在的硬盘驱动器的信息
本文关键字:计算机 存在 信息 硬盘驱动器 何提取 提取 使用 | 更新日期: 2023-09-27 17:47:22
我正在寻找诸如尺寸/容量,序列号,型号,头部扇区,制造商以及可能的SMART数据之类的数据。
可以使用
WMI 调用来访问有关硬盘的信息。
需要使用 System.Management; & System.Management.dll 参考
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid='"c:'"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");
Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + "bytes");
您应该使用 System.Management 命名空间:
System.Management.ManagementObjectSearcher ms =
new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
System.Console.Write(mo["Model");
}
有关Win32_DiskDrive类成员的详细信息,请查看:
http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx
最简单的方法是使用 WMI 获取所需的信息。请查看 MSDN 中Win32___DiskDrive的文档,其中包含各种标准驱动器属性。您也可以尝试使用 MSStorageDriver_ATAPISmartData WMI 类,我目前找不到任何文档,但应该包含您正在寻找的所有 SMART 数据。下面是一些基本示例代码,用于枚举所有驱动器并获取其属性:
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives)
{
foreach (PropertyData property in drive.Properties)
{
Console.WriteLine("Property: {0}, Value: {1}", property.Name, property.Value);
}
Console.WriteLine();
}
您可以使用 WMI 获取所需的大部分信息,此处介绍了 WMI。