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