尝试删除子项树:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.hdr
. .hdr
subkey 有一个子键,没有值。所以我使用这段代码:
RegistryKey FileExts = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts");
RegistryKey faulty = FileExts.OpenSubKey(".hdr");
Debug.Assert (faulty != null && faulty.SubKeyCount != 0);
faulty.Close();
FileExts.DeleteSubKeyTree(".hdr");
我得到了ArgumentException
消息“无法删除子项树,因为子项不存在。”
搞什么?我检查并断言它确实存在?
状态更新
使用进程监视器查找,“.hdr”的子项得到一个ACCESS DENIED
运行代码时出错。我检查了授权,但它们看起来不错?
找到了一个解决方案,这又提出了另一个问题......
指向后ACCESS DENIED
进程监视器错误,我只是尝试单独删除子项:
RegistryKey hdr = FileExts.OpenSubKey(".hdr", true);
foreach (String key in hdr.GetSubKeyNames())
hdr.DeleteSubKey(key);
hdr.Close();
FileExts.DeleteSubKeyTree(".hdr");
它工作得很好,所以这不是权限问题!
由于我不明白的原因,DeleteSubKeyTree 需要一个空树才能工作。
解释一下,有人吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)