Edg*_*gar 2 c# windows registry
有人可以建议如何将注册表中一个子类别的内容复制到另一个子类别的最佳方法吗?
例如,我们有:
HKEY_CURRENT_USER.Software.MyProgram.ver_1
Run Code Online (Sandbox Code Playgroud)
并运行函数检查,如果没有ver_2,那么创建... MyProgram.ver_2并复制所有内容... MyProgram.ver_1.
扩展方法:
public static void CopyTo(this RegistryKey src, RegistryKey dst)
{
// copy the values
foreach (var name in src.GetValueNames())
{
dst.SetValue(name, src.GetValue(name), src.GetValueKind(name));
}
// copy the subkeys
foreach (var name in src.GetSubKeyNames())
{
using (var srcSubKey = src.OpenSubKey(name, false))
{
var dstSubKey = dst.CreateSubKey(name);
srcSubKey.CopyTo(dstSubKey);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样称呼:
var ver1 = Registry.CurrentUser.OpenSubKey(@"Software\MyProgram\ver_1");
var ver2 = Registry.CurrentUser.OpenSubKey(@"Software\MyProgram\ver_2");
ver1.CopyTo(ver2);
Run Code Online (Sandbox Code Playgroud)