2013-03-25 4 views
7

Wenn ich versuche, einen Schlüssel in HKCU zu löschen, der Unterschlüssel hat, erhalte ich einen Fehler. HierVersuch, Registrierungsschlüssel mit Unterschlüsseln zu löschen, führt zu einem Fehler

ist der Code, ich verwende:

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

Der Fehler erhalte ich:

Registrierungsschlüssel Unterschlüssel und rekursive entfernt werden durch dieses Verfahren nicht unterstützt.

Wie kann ich es überwinden?

Antwort

18

Verwenden Sie die Methode RegistryKey.DeleteSubKeyTree.

RegistryKey.DeleteSubKeyTree Method (String)

Löscht einen Unterschlüssel und alle untergeordneten Unterschlüssel rekursiv.

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