此行中的sk1.DeleteValue(KeyName)期望 [英] sk1.DeleteValue(KeyName) expection in this line
问题描述
public bool DeleteKey(尝试
{
// 设置
RegistryKey rk = baseRegistryKey;
RegistryKey sk1 = rk.CreateSubKey(subKey);
// 如果RegistrySubKey不存在-> (是)
如果(sk1 == 空)
返回 真;
其他
sk1.DeleteValue(KeyName);
返回 真;
}
捕获(例外EX)
{
// AAAAAAAAAAARGH,一个错误!
MessageBox.Show(EX.ToString());
返回 假;
}
}
为什么这条线能给人期望?
何时,我从MSDN
中删除注册表
RegistryKey.CreateSubKey()
方法的定义中的oracle9i
创建新的子项或打开现有的子项.字符串subKey不区分大小写.
因此,当找不到所需的子项并且objsk1
永远不会返回null
时,RegistryKey sk1 = rk.CreateSubKey(subKey);
为您创建一个新密钥.现在,当您尝试删除新创建的子项下的子项时,会出现错误!
如果只希望在子项退出时删除,请使用RegistryKey.OpenSubKey(String, Boolean)
方法.
RegistryKey.OpenSubKey方法(字符串,布尔值) [ ^ ]
public bool DeleteKey(string KeyName)
{
try
{
// Setting
RegistryKey rk = baseRegistryKey ;
RegistryKey sk1 = rk.CreateSubKey(subKey);
// If the RegistrySubKey doesn't exists -> (true)
if ( sk1 == null )
return true;
else
sk1.DeleteValue(KeyName);
return true;
}
catch (Exception EX)
{
// AAAAAAAAAAARGH, an error!
MessageBox.Show(EX.ToString());
return false;
}
}
why this line give expection?
when,I delete oracle9i in registry
Definition forRegistryKey.CreateSubKey()
method from MSDN
Creates a new subkey or opens an existing subkey. The string subKey is not case-sensitive.
So,RegistryKey sk1 = rk.CreateSubKey(subKey);
creates a new key for you when the desired subkey is not found and the objsk1
would never returnnull
. Now, when you try to delete a subkey under the newly created sub key you get an error!
If you wish to delete only when the subkey exits then use theRegistryKey.OpenSubKey(String, Boolean)
method.
RegistryKey.OpenSubKey Method (String, Boolean)[^]
这篇关于此行中的sk1.DeleteValue(KeyName)期望的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!