2012-10-01 107 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) {}