usando c # come posso estrarre informazioni sui dischi rigidi presenti sul computer locale
-
04-07-2019 - |
Domanda
Sto cercando di ottenere dati come dimensione / capacità, numero di serie, numero di modello, settori di testa, produttore e possibilmente dati SMART.
Soluzione
È possibile utilizzare Chiamate WMI per accedere alle informazioni sui dischi rigidi.
// Richiede l'utilizzo di System.Management; & Amp; Riferimento System.Management.dll
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes");
Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + "bytes");
Altri suggerimenti
È necessario utilizzare lo spazio dei nomi System.Management :
System.Management.ManagementObjectSearcher ms =
new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
System.Console.Write(mo["Model");
}
Per dettagli sui membri della classe Win32_DiskDrive, controlla:
http://msdn.microsoft.com/ it-it / library / aa394132 (VS.85) aspx
Il modo più semplice è utilizzare WMI per ottenere le informazioni richieste. Dai un'occhiata alla documentazione per Win32___DiskDrive in MSDN, che contiene una varietà di proprietà standard dell'unità. Puoi anche provare a utilizzare la classe WMI MSStorageDriver_ATAPISmartData, che al momento non trovo alcun documento, ma che dovrebbe avere tutti i dati SMART che stai cercando. Ecco alcuni esempi di codice di base per enumerare tutte le unità e ottenere le loro proprietà:
ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives)
{
foreach (PropertyData property in drive.Properties)
{
Console.WriteLine("Property: {0}, Value: {1}", property.Name, property.Value);
}
Console.WriteLine();
}