我目前正在开发一个需要使用WMI(Windows管理界面)的项目。我需要找到硬盘和逻辑磁盘以及它们的一些信息。例如,我使用以下代码来获取物理磁盘:
hd = new HardDrive();
mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '"
+ disksModel[i] + "'");
foreach(ManagementObject moDisk in mosDisks.Get())
{
string vari = moDisk["DeviceID"].ToString();
hd.HardDiskModel = moDisk["Model"].ToString();
hd.HardDiskType = moDisk["InterfaceType"].ToString();
hd.HardDiskStatus = moDisk.Properties["Status"].Value.ToString();
hd.HardDiskSize = moDisk.Properties["Size"].Value.ToString();
hd.HardDiskName = moDisk.Properties["Name"].Value.ToString();
hd.HardDiskSerialNo = moDisk.Properties["SerialNumber"].Value.ToString();
}
然后另一个查询来获取逻辑磁盘。
我唯一想知道的是:我怎样才能确保获得特定硬盘的逻辑磁盘?
例如,如果我有3个硬盘(HD1,HD2,HD3)和8个逻辑磁盘(c:
到j:
),我如何在代码中确保例如{ {1}}和c:
属于HD1,d:
,e:
,f:
和g:
属于HD2和h:
以及{{1}属于HD3?
答案 0 :(得分:1)
您可以使用Win32_DiskDrive
句子将ASSOCIATORS OF
与逻辑驱动器关联起来,这些是您必须使用的类。
前段时间我写了Delphi sample about this你可以检查一下,你也可以在SO question上找到一个C#样本。