Cha*_*esB 5 .net registry exception
试图删除子项树:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.hdr..hdr子键有一个子键,没有值.所以我使用这段代码:
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");
Run Code Online (Sandbox Code Playgroud)
我收到ArgumentException消息"无法删除子项树,因为该子项不存在."
WTF?我检查并断言它确实存在?
状态更新
在使用Process Monitor时,".hdr"的子项ACCESS DENIED在运行代码时会出错.我检查了自动调整,但它们看起来很好吗?
找到了解决方案,引发了另一个问题......
在ACCESS DENIED使用Process Monitor 指出错误之后,我只是尝试单独删除子键:
RegistryKey hdr = FileExts.OpenSubKey(".hdr", true);
foreach (String key in hdr.GetSubKeyNames())
hdr.DeleteSubKey(key);
hdr.Close();
FileExts.DeleteSubKeyTree(".hdr");
Run Code Online (Sandbox Code Playgroud)
它工作正常,所以这不是一个许可问题!
由于我不明白的原因,DeleteSubKeyTree需要一个空树来工作.
一个解释,有人吗?
| 归档时间: |
|
| 查看次数: |
9653 次 |
| 最近记录: |