首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用c#提取有关本地计算机上硬盘驱动器的信息

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

Stack Overflow用户
提问于 2008-10-24 10:08:49
回答 4查看 11.1K关注 0票数 5

我希望获得数据,如大小/容量,序列号,型号,机头部门,制造商和可能的智能数据。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-24 10:17:48

您可以使用WMI调用来访问有关硬盘的信息。

//需要使用System.Management;& System.Management.dll引用

代码语言:javascript
运行
复制
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");
票数 9
EN

Stack Overflow用户

发布于 2008-10-24 10:21:49

您应该使用System.Management命名空间:

代码语言:javascript
运行
复制
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/library/aa394132(VS.85).aspx

票数 3
EN

Stack Overflow用户

发布于 2008-10-24 10:35:57

最简单的方法是使用WMI来获取所需的信息。查看MSDN中的Win32___DiskDrive文档,其中包含各种标准驱动器属性。您还可以尝试使用MSStorageDriver_ATAPISmartData WMI类,我目前找不到它的任何文档,但应该具有您正在寻找的所有智能数据。下面是一些用于枚举所有驱动器并获取其属性的基本示例代码:

代码语言:javascript
运行
复制
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();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/232979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档