5

我正在寻找数据,例如尺寸/容量、序列号、型号、头部部门、制造商以及可能的 SMART 数据。

4

4 回答 4

9

您可以使用 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");
于 2008-10-24T10:17:48.447 回答
3

您应该使用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

于 2008-10-24T10:21:49.237 回答
2

最简单的方法是使用 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();
}
于 2008-10-24T10:35:57.007 回答
0

您可以使用WMI来获取您想要的大部分信息,这里有对 WMI 的介绍

于 2008-10-24T10:14:07.783 回答