Wie die Festplatte zu finden, die eine bestimmte Partition in C # hält?
-
08-07-2019 - |
Frage
Kennt jemand eine Möglichkeit, programmatisch eine gegebene Partition, die hält physische Datenträger, um herauszufinden? Manuell kann ich diese Informationen mit Start-> Run-> diskmgmt.msc, wo ich, dass (auf meinem Computer) sehen kann, die C aufteilt: und D: sind auf der Platte 1, E: & F: auf Datenträger 0
Dies ist eine Datei für die Optimierung von Operationen, die von ihnen parallel zu tun, wenn die Dateien auf unterschiedlichen physischen Datenträgern Knirschen.
Lösung
Sie können diese Informationen erhalten unter Verwendung von WMI aus System.Management Namespace von Quering Win32_DiskDrive Klasse.
Hier grundlegende Informationen über WMI in .NET.
Andere Tipps
Neben Arul Antwort, hier ist ein Link, der zeigt, wie die Festplatte Geth <-> Partition Assoziation mit WMI aus einem VBS-Skript: WMI Aufgaben: Platten und Dateisysteme . -> siehe das letzte Beispiel auf der Seite
Edit: Noch besser ist, hier ist ein guter Artikel auf WMI C #, die nur zufällig auch die genauen Beziehungen zwischen den WMI-Klassen beschreiben benötigt das Laufwerk zu erhalten (zB \\\\.\\PHYSICALDRIVE0
), die eine logische Platte hält (zB C:
)
siehe 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
siehe Klasse: CIM_BasedOn - nicht aufzuzählen hiden Partition, CIM_DiskPartition -all, aber nicht Disk-Label sehen, CIM_StorageExtent - GUID, Etikett, Fach (ausgeblendet zu)
Sind Sie sicher, dass die Partition, die mit nur einer Festplatte? Es könnte auf mehrere physische Festplatten verteilt / Übergreifend / etc werden.