Скажите, является ли диск разделом или отдельным жестким диском - PullRequest
4 голосов
/ 02 февраля 2012

Я пишу свой собственный поиск файлов (почему, потому что я хочу / могу - не ищу существующую программу). Я могу получить все диски в c # с помощью метода DriveInfo.GetDrives () . В идеале я хотел бы выполнить поиск параллельно только на дисках, которые являются отдельным диском, и для разделов, которые находятся на том же диске, запустить их последовательно. Таким образом, я не буду вызывать постоянный поиск дисков, поскольку GetDrives возвращает все разделы или сменные носители. Я знаю, что могу сказать тип, если это USB-накопители против жесткого диска? Как я могу сделать это с помощью DriveInfo или любой другой методологии?

1 Ответ

3 голосов
/ 02 февраля 2012

Этот связанный вопрос показывает, как узнать, используя WMI (находится в System.Management):

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"]);
}
...