如何在C#4.0中区分硬盘驱动器型号

时间:2012-07-05 01:19:28

标签: c# wmi hard-drive

我目前正在使用WMI查询返回连接到计算机的所有硬盘的制造商名称。不幸的是,这并没有特别返回“Intel”或“Western Digital”所以我使用string.Contains()来比较制造商是谁。 我的代码以简单的形式出现:

        //*** Declare Management Class
        ManagementClass clsMgtClass = new ManagementClass("Win32_DiskDrive");
        ManagementObjectCollection colMgtObjCol = clsMgtClass.GetInstances();

        //*** Loop Over Objects

        foreach (ManagementObject objMgtObj in colMgtObjCol)
        {
            MessageBox.Show(objMgtObj.Properties["Manufacturer"].Value.ToString());
        }

这可能有60%的时间,因为它依赖于WMI来返回整个名称。因此,例如我的硬盘驱动器作为“SanDisk SDSSDX240GG25 ATA设备”返回,这很好,因为我可以很容易地找到“SanDisk”。同样,西部数据产品将显示为“WD3000USB”或类似的东西,我可以清楚地找到“WD”。但是在使用希捷硬盘的另一台计算机上,它有SE1000GXB等等,并没有任何制造商的真实指示。所以我的问题是,我怎么能可靠地找到硬盘制造商,并能够轻松区分制造商,而不必通过谷歌脚本或数据库来查询型号的麻烦。谢谢。 另一个编辑:使用成员“Caption”,它将返回上面的示例。使用成员“制造商”将只返回“(标准磁盘驱动器)”

1 个答案:

答案 0 :(得分:0)

ST - seagate

您可以从每个现已合并的硬盘公司下载型号前缀列表,并从模型中制作一个表格,如果您愿意,此表格也可以包含实际容量。

型号通常包含足够的信息,1986年以后磁盘设备上的序列号通常包含模型信息。

最重要的是,您可能需要创建一个表格以便以人性化的方式查找信息。

http://www.robvanderwoude.com/files/listhdds_2k.txt

这将帮助您了解合并的内容 http://en.wikipedia.org/wiki/List_of_defunct_hard_disk_manufacturers

这是Windows的批处理文件 http://www.robvanderwoude.com/sourcecode.php?src=listhdds_2k

相关问题