Как найти диск с данным разделом в С#?

Кто-нибудь знает способ узнать программно, какой физический диск содержит данный раздел? Вручную я могу найти эту информацию, используя Start->Run->diskmgmt.msc , где я вижу (на моем компьютере), что разделы C: и D: находятся на диске 1, E: и F: на диске 0.

Это сделано для оптимизации некоторых операций с файлами, выполняя их параллельно, если файлы находятся на разных физических дисках.


person Cristian Diaconescu    schedule 18.11.2008    source источник
comment
Похоже, вы имеете в виду логический диск или том, а не раздел. Имейте в виду, что раздел может быть пустым (на нем нет тома), а том может находиться в нескольких разделах при распределении/чередовании нескольких дисков.   -  person dynamichael    schedule 24.06.2020


Ответы (4)


Вы можете получить эту информацию с помощью WMI из пространства имен System.Management, выполнив запрос Win32_DiskDrive.

вот основная информация о WMI в .NET.

person arul    schedule 18.11.2008

В дополнение к ответу Арула, вот ссылка, показывающая, как получить ассоциацию раздела disk‹-> с помощью WMI из сценария VBS: Задачи WMI: диски и файловые системы -> см. последний пример на странице.

Изменить: еще лучше, вот хорошая статья в WMI с использованием C#, который также описывает точные отношения между классами WMI, необходимыми для получения диска (например, \\\\.\\PHYSICALDRIVE0 ), который содержит логический диск (например, C:)

person Cristian Diaconescu    schedule 18.11.2008

см. HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

wmic path CIM_BasedOn get * > wmic-path-CIM_BasedOn-get.txt
wmic path CIM_DiskPartition get * > wmic-path-CIM_DiskPartition-get.txt
wmic path CIM_StorageExtent get * > wmic-path-CIM_StorageExtent-get.txt

см. Класс: CIM_BasedOn — без перечисления скрытый раздел, CIM_DiskPartition — все, но не видит метку диска, CIM_StorageExtent — GUID, метка, раздел (скрыть тоже)

person STTR    schedule 01.01.2013

Вы уверены, что раздел связан только с одним диском? Он может быть чередован/распределен/и т. д. на нескольких физических дисках.

person Joel Coehoorn    schedule 18.11.2008
comment
Да, я знаю о такой возможности. Делаю шаг за шагом :) - person Cristian Diaconescu; 19.11.2008