2012-05-18 179 views
4

使用C#可以獲取硬盤信息嗎?使用C#獲取硬盤速度

Like spin rate in RPM 
Model Number 
Company Name 
Data Transfer Rate 
Seek Time 

最重要的是轉速。

我試圖與

ManagementClass driveClass = new ManagementClass("Win32_DiskDrive"); 

屬性,但它不給自旋速率。

請幫幫我嗎?

  • Dattatrya莫恩
+0

這可能取決於操作系統。在Linux上,你可能會讀取一些文件/ proc –

+0

http://stackoverflow.com/questions/3382547/how-can-i-find-hard-disk-speed – Sadaf

+0

@Basile:C#在Linux? – Dan

回答

1

閱讀本Win32_DiskDrive和嘗試這個

string rValue = null; 
      ManagementObjectSearcher searcher; 
      ArrayList hddCollection = new ArrayList(); 
      try 
      { 
       searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive"); 
       foreach (ManagementObject wmiObj in searcher.Get) 
       { 
        HardDrive hdd = new HardDrive(); 
        hdd.model = wmiObj("Model").ToString; 
        hdd.type = wmiObj("InterfaceType").ToString; 
        hddCollection.Add(hdd); 
        break; // TODO: might not be correct. Was : Exit For 
       } 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
4

檢查:Reading ATAPI SMART Data from Drives using .NET; Temperature Anyone?

using System.Management; 

public string GetHDDSerial() 
{ 
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); 

    foreach (ManagementObject wmi_HD in searcher.Get()) 
    { 
     // get the hardware serial no. 
     if (wmi_HD["SerialNumber"] != null) 
      return wmi_HD["SerialNumber"].ToString(); 
    } 

    return string.Empty; 
}