Сопоставить DiskIndex с меткой тома
В настоящее время я могу получить все диски и их метки в C # с помощьюDriveInfo.GetDrives (), Затем я могу получить индекс диска / индекс раздела с помощью этой методологии.
var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskPartition");
foreach (var queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskPartition instance");
Console.WriteLine("Name:{0}", (string)queryObj["Name"]);
Console.WriteLine("Index:{0}", (uint)queryObj["Index"]);
Console.WriteLine("DiskIndex:{0}", (uint)queryObj["DiskIndex"]);
Console.WriteLine("BootPartition:{0}", (bool)queryObj["BootPartition"]);
}
Проблема в том, что DiskIndex, Name и Index в основном просто числа, а не метка тома, то есть C: \, D: \ и т. Д.
Итак, суть в том, как я могу сделать метку тома, которая являетсяИмя Proprty на DriveInfo к DiskIndex? Либо использовать эту методологию, либо лучше.
(Это следующее:Скажите, является ли диск разделом или отдельным жестким диском)
РЕДАКТИРОВАТЬ: Я нашел для запроса управленияWin32_LogicalDisk а затемWin32_LogicalDiskToPartition, LogicalDisk имеет объем, а LogicalDisktoParition обеспечивает сопоставление. Тем не менее, я не могу понять, как получить карту. Я попытался найти JOIN и выбрать значения, но не смог найти ничего о том, как это объединить без обширного цикла в коде c #.