Question

Est-ce que quelqu'un connaît un moyen de déterminer par programme quel disque physique contient une partition donnée? Manuellement, je peux trouver cette information en utilisant Démarrer - & Gt; Exécuter - & Gt; diskmgmt.msc, où je peux voir que (sur mon ordinateur) les partitions C: et D: se trouvent sur le disque 1, E: & amp; F: sur le disque 0.

Ceci permet d'optimiser certaines opérations de traitement de fichiers en les effectuant en parallèle si les fichiers se trouvent sur des disques physiques différents.

Était-ce utile?

La solution

Vous pouvez obtenir ces informations à l'aide de WMI à partir de l'espace de noms System.Management en interrogeant Win32_DiskDrive , classe.

Voici des informations de base sur WMI dans .NET.

Autres conseils

En plus de la réponse d'Arul, voici un lien qui montre comment obtenir le disque < - > association de partition utilisant WMI à partir d'un script VBS: Tâches WMI: disques et systèmes de fichiers - > voir le dernier exemple de la page.

Modifier: Encore mieux, voici un bon article. sur WMI en utilisant C #, qui décrit également les relations exactes entre les classes WMI nécessaires pour obtenir le lecteur de disque (par exemple, \\\\.\\PHYSICALDRIVE0) qui contient un disque logique (par exemple, C:)

voir 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

voir Classe: CIM_BasedOn - partition non énumérée, CIM_DiskPartition -all, mais pas l’étiquette du disque, CIM_StorageExtent - GUID, étiquette, partition (masquer aussi)

Êtes-vous sûr que la partition est associée à un seul disque? Il peut s'agir de bandes / d'étendues / etc. sur plusieurs disques physiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top