如何使用c#检查硬盘是SATA设备还是IDE设备
Posted
技术标签:
【中文标题】如何使用c#检查硬盘是SATA设备还是IDE设备【英文标题】:How to check hard disk is Sata Device or it is IDE Device using c# 【发布时间】:2016-08-31 03:57:59 【问题描述】:我有 SATA 硬盘,我想通过 C# windows 窗体检测。我想显示它是 SATA 或 IDE 驱动器。我正在使用以下代码,但它总是返回 IDE,但它应该返回 SATA。所以任何人都可以帮助我找出我错的地方。
WqlObjectQuery q = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive");
ManagementObjectSearcher res = new ManagementObjectSearcher(q);
foreach (ManagementObject o in res.Get())
string lblInterface= o["InterfaceType"].ToString();
【问题讨论】:
你可以使用Drive Info类。你可以得到信息。 【参考方案1】:根据Win32_DiskDrive
类documentation,InterfaceType
的可能值为:
SCSI
HDC
IDE
USB
1394
因此,您不会看到 SATA。
但是,Caption
属性可能包含有关驱动器的额外信息。您可以解析它以查找它是否包含 ATA 或 SCSI。
【讨论】:
好的,但哪个值适用于 SATA 驱动器。它返回 IDE,但我有 SATA 驱动器。 好的,它不在可能值列表中,因此默认为IDE? 这个问题可能对你有帮助***.com/questions/5362199/… 谢谢,但我正在寻找 C#。 同一个底层API。【参考方案2】:检查win32_DiskDrive
的caption
属性以获取字符串ATA
来自 MSDN Caption 数据类型:字符串 访问类型:只读 限定符:MaxLen (64)、DisplayName(“标题”) 对象的简短描述
foreach (ManagementObject o in res.Get())
string sCaption = o["Caption"].ToString();
if(sCaption.Contains("ATA"))
Console.WriteLine("SATA Drive");
break;
【讨论】:
兄弟确定每个SATA Device的Caption都包含“ATA”字串吗?以上是关于如何使用c#检查硬盘是SATA设备还是IDE设备的主要内容,如果未能解决你的问题,请参考以下文章