public void DeleteKey(RegistryKey rkey, string keyname, bool throw_if_missing)
{
KeyHandler self = KeyHandler.Lookup(rkey, true);
if (self == null)
{
// key is marked for deletion
if (!throw_if_missing)
{
return;
}
throw new ArgumentException("the given value does not exist");
}
string dir = Path.Combine(self.Dir, ToUnix(keyname));
if (!KeyHandler.Delete(dir) && throw_if_missing)
{
throw new ArgumentException("the given value does not exist");
}
}