Globals.RegistryAccess.recurseCopyKey C# (CSharp) Method

recurseCopyKey() private static method

private static recurseCopyKey ( RegistryKey sourceKey, RegistryKey destinationKey ) : void
sourceKey Microsoft.Win32.RegistryKey
destinationKey Microsoft.Win32.RegistryKey
return void
        private static void recurseCopyKey(RegistryKey sourceKey, RegistryKey destinationKey)
        {
            //copy all the values
            foreach (string valueName in sourceKey.GetValueNames())
            {
                object objValue = sourceKey.GetValue(valueName);
                RegistryValueKind valKind = sourceKey.GetValueKind(valueName);
                destinationKey.SetValue(valueName, objValue, valKind);
            }

            //For Each subKey
            //Create a new subKey in destinationKey
            //Call myself
            foreach (string sourceSubKeyName in sourceKey.GetSubKeyNames())
            {
                RegistryKey sourceSubKey = sourceKey.OpenSubKey(sourceSubKeyName);
                RegistryKey destSubKey = destinationKey.CreateSubKey(sourceSubKeyName);
                recurseCopyKey(sourceSubKey, destSubKey);
            }
        }