我不知道你可以做到这一点的内置,单一的电话。但是,您不需要调用OpenSubKey/GetValue等。对CreateSubKey
的调用将创建一个新密钥,或者在存在的情况下打开现有密钥。
RegistryKey regKey = startingRootKey;
string[] RegKeys = pathToAdd.split('\'');
foreach (string key in RegKeys) {
regKey = regKey.CreateSubKey(key);
}
regKey.SetValue("ValueName", "Value");
忽略额外'在那里,我需要它使格式化看起来是正确的。 ??
此外,请确保您在执行注册表项添加时测试异常...有很多安全性和路径方面可能会出错。陷阱例外列表是here。
编辑
我做这个太复杂了!我只是测试......下面会做的正是你想要的东西:
RegistryKey regKey = startingRootKey;
regKey = regKey.CreateSubKey(@"a\b\c\d");
regKey.SetValue("ValueName", "Value");
regKey.Close();
它是足够聪明的解析嵌套的路径。只要确保你有@符号,否则它会将字符串视为已经被转义。
您可以通过将密钥实际写入.reg文件并使用.NET中的系统命令运行来实现该结果,但这将是一种快速“非常脏”的解决方案,而且我不会真的推荐它... – 2010-11-17 16:58:17