我写了以下代码:
RegistryKey _Key = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations", true);
foreach (String s in names)
{
System.Windows.Forms.MessageBox.Show("Done.===================" + s);
}
_Key.Close();
会打印一个等于.txt
但是,当我这样做时,即尝试像这样访问/HKCR/SFA/.txt
密钥:
RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations//.txt", true);
rootKey.Close();
我收到以下错误:
SystemNullReferenceException: Object reference not set to an instance of an object
答案 0 :(得分:2)
抛出异常是因为rootKey
为null(OpenSubKey操作失败,因为密钥名称中使用了//
而不是\\
)。
使用以下代码:
using(RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations\\.txt", true)) {
if(rootKey != null) {
// do staff
}
}