2013-03-25 11 views
7

Quando provo a eliminare una chiave in HKCU con sottochiavi, viene visualizzato un errore.Il tentativo di eliminare le chiavi di registro con le sottochiavi causa un errore

Ecco il codice che sto usando:

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

l'errore che ottengo:

chiave di registro ha sottochiavi e rimuove ricorsive non sono supportati da questo metodo.

Come posso superarlo?

risposta

18

Utilizzare il metodo RegistryKey.DeleteSubKeyTree.

RegistryKey.DeleteSubKeyTree Method (String)

Elimina una sottochiave e tutte le sottochiavi figlio in modo ricorsivo.

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"); 
} 
Problemi correlati