我不知道你可以做到這一點的內置,單一的電話。但是,您不需要調用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