gpt4 book ai didi

c# - 如何用C#查询硬盘型号?

转载 作者:太空狗 更新时间:2023-10-29 23:32:47 27 4
gpt4 key购买 nike

在我正在编写的程序的一部分中,我试图提取有关指定本地硬盘驱动器的设备信息。我已经能够使用 DriveInfo 类创建一些值返回方法,如下所示:

//Gets drive format
public string GetDriveFormat(string driveName)
{
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
if (drive.IsReady && drive.Name == driveName)
{
return drive.DriveFormat;
}
}
return "";
}
//Example of use
MessageBox.Show(GetDriveFormat("C:\\"));

我现在遇到的问题是 DriveInfo 类似乎没有模型属性。我已经查看了所有内容,但无法找到一种方法来构建一个返回驱动器模型的值返回方法,就像在设备管理器中可以看到的那样。

任何帮助将不胜感激,谢谢!

最佳答案

遗憾的是,您无法使用 DriveInfo 类获取驱动器的制造商和型号。

您将不得不求助于 WMI:

WqlObjectQuery q = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive");
using (ManagementObjectSearcher res = new ManagementObjectSearcher(q)) {
foreach (ManagementObject o in res.Get()) {
Console.WriteLine("Caption = " + o["Caption"]);
Console.WriteLine("DeviceID = " + o["DeviceID"]);
Console.WriteLine("Decsription = " + o["Description"]);
Console.WriteLine("Manufacturer = " + o["Manufacturer"]);
Console.WriteLine("MediaType = " + o["MediaType"]);
Console.WriteLine("Model = " + o["Model"]);
Console.WriteLine("Name = " + o["Name"]);
// only in Vista, 2008 & etc: //Console.WriteLine("SerialNumber = " + o["SerialNumber"]);
} }

不确定您是否还需要考虑安装的驱动器:

foreach(ManagementObject volume in new ManagementObjectSearcher("Select * from Win32_Volume" ).Get())
{
...
}

关于c# - 如何用C#查询硬盘型号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com