2012-10-01 45 views
1

我需要返回系統保留分區的DeviceID。我應該可以通過首先獲取Label屬性來完成Win32_Volume類的功能,如果它匹配「System Reserved」,則獲取DeviceID屬性。下面的代碼崩潰與一個空引用異常:需要獲取系統保留分區的名稱(DeviceID)

static void Main(string[] args) 
{ 
    ManagementObjectSearcher ms = new ManagementObjectSearcher("Select * From Win32_Volume"); 
    foreach (ManagementObject mo in ms.Get()) 
    { 
     if (mo["Label"].ToString() == "System Reserved") 
     { 
      Console.WriteLine(mo["DeviceID"].ToString()); 
     } 
    } 
    Console.Read(); 
} 

回答

2

這是任何人都需要做到這一點:

string sysGuid = ""; 
     try 
     { 
      ManagementObjectSearcher ms = new ManagementObjectSearcher("SELECT * FROM Win32_Volume"); 
      foreach (ManagementObject mo in ms.Get()) 
      { 
       if (mo["Label"].ToString() == "System Reserved") 
       { 
        sysGuid = mo["DeviceID"].ToString(); 
        break; 
       } 
      } 
     } 
     catch (Exception) {}