2008-10-24 4 views

ответ

7

Вы можете использовать WMI-вызовы для доступа к информации о жестких дисках.

// Требуется использовать System.Management; & 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"); 
0

Вы можете использовать WMI, чтобы получить большую часть необходимой информации, и есть введение в WMI here.

3

Вы должны использовать 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"); 
} 

Подробные сведения о членах класса Win32_DiskDrive, проверьте:

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

2

Самый простой способ - использовать WMI для получения необходимой информации. Взгляните на документацию для Win32___DiskDrive в MSDN, которая содержит множество стандартных свойств привода. Вы также можете попробовать использовать класс WMS MSStorageDriver_ATAPISmartData, на который я не могу найти ни одного документа в настоящий момент, но должен иметь все данные SMART, которые вы ищете. Вот некоторые базовые примеры кода, чтобы перечислять все диски и получать их свойства:

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

Любая идея, если вы можете проверить скорость чтения/записи с помощью тестового файла с использованием WMI? – 2012-03-23 13:24:50