2008-10-24 8 views

Répondre

7

Vous pouvez utiliser les appels WMI pour accéder aux informations sur les disques durs.

// Nécessite l'utilisation de System.Management; & System.Management.dll Référence

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"); 
0

Vous pouvez utiliser WMI pour obtenir la plupart des informations que vous voulez, et il y a une introduction à WMI here.

3

Vous devez utiliser l'espace de noms 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"); 
} 

Pour en savoir plus sur les membres de la classe Win32_DiskDrive, consultez:

http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx

2

Le moyen le plus simple consiste à utiliser WMI pour obtenir les informations requises. Prenez à regarder la documentation pour Win32___DiskDrive dans MSDN, qui contient une variété de propriétés de lecteur standard. Vous pouvez également essayer d'utiliser la classe WMI MSStorageDriver_ATAPISmartData, pour laquelle je ne trouve aucun document pour le moment, mais qui devrait contenir toutes les données SMART que vous recherchez. Voici un exemple de code de base pour énumérer tous les lecteurs et obtenir leurs propriétés:

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(); 
} 
+0

une idée si vous pouvez vérifier les vitesses de lecture/écriture avec un fichier de test en utilisant WMI? –

Questions connexes