11

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

这是我正在使用的代码:

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

我得到的错误:

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

我怎样才能克服它?

4

2 回答 2

27

使用RegistryKey.DeleteSubKeyTree方法。

RegistryKey.DeleteSubKeyTree 方法(字符串)

递归删除子项和任何子项。

using(RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"Software\Policies\", true))
{
    if (regkey.OpenSubKey("Google") != null)
    {
        regkey.DeleteSubKeyTree("Google");
    }
}
于 2013-03-25T01:15:47.423 回答
1
using(var regkey = Registry.CurrentUser.OpenSubKey(@"Software\Policies\", true))
{
   regkey?.DeleteSubKeyTree("Google");
}
于 2017-08-09T19:37:15.143 回答