如何使用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_DiskDrivecaption 属性以获取字符串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设备的主要内容,如果未能解决你的问题,请参考以下文章

磁盘分区:fdisk和parted

SATA硬盘,IDE硬盘,SCSI硬盘各有啥特点?哪个更好?

SATA与IDE的区别是啥

IDE硬盘是啥,和SATA硬盘有啥区别

IED接口硬盘与SCSI接口的具体区别是啥?

IDE 、 SATA 、串口 、并口 有啥区别