尝试使用子项删除注册表项会导致错误

时间:2013-03-25 01:13:10

标签: c# .net registry

当我尝试删除具有子键的HKCU中的键时,我收到错误。

以下是我正在使用的代码:

using (RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"Software\Policies\", true))
{
   if (regkey.OpenSubKey("Google") != null)
   {
      regkey.DeleteSubKey("Google");
   }
}

我得到的错误:

  

注册表项具有子项,此方法不支持递归删除。

我怎样才能克服它?

2 个答案:

答案 0 :(得分:21)

使用RegistryKey.DeleteSubKeyTree方法。

  

RegistryKey.DeleteSubKeyTree Method (String)

     

递归删除子项和子子项。

using(RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"Software\Policies\", true))
{
    if (regkey.OpenSubKey("Google") != null)
    {
        regkey.DeleteSubKeyTree("Google");
    }
}

答案 1 :(得分:1)

using(var regkey = Registry.CurrentUser.OpenSubKey(@"Software\Policies\", true))
{
   regkey?.DeleteSubKeyTree("Google");
}
相关问题