使用c#如何提取有关本地计算机上存在的硬盘驱动器的信息

StackOverflow https://stackoverflow.com/questions/232979

  •  04-07-2019
  •  | 
  •  

我希望获得诸如尺寸/容量,序列号,型号,头部,制造商和可能的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 /库/ aa394132(VS.85)的.aspx

最简单的方法是使用WMI获取所需信息。请查看 Win32___DiskDrive 的文档。 MSDN,包含各种标准驱动器属性。您也可以尝试使用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简介此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top