2013-03-25 8 views
7

Kiedy próbuję usunąć klucz w HKCU, który ma podkluczy, pojawia się błąd.Próba usunięcia kluczy rejestru z podkluczy powoduje błąd

Oto kod używam:

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

Błąd pojawia się:

klucz rejestru zawiera podklucze i usuwa rekurencyjne nie są obsługiwane przez tę metodę.

Jak mogę to pokonać?

Odpowiedz

18

Użyj metody RegistryKey.DeleteSubKeyTree.

RegistryKey.DeleteSubKeyTree Method (String)

Usuwa podklucz i wszelkie podklucze potomnych rekurencyjnie.

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"); 
} 
Powiązane problemy