まず、この質問は他のユーザーと同様に表示されることを認識しています。しかし、これまでの私の研究では、私が直面している特定の問題に対する解決策は見出されておらず、同様の状況の問題に対する解決策がたくさんありました。レジストリキーを削除する方法:「サブキーが存在しないため削除できません」というエラーが表示される
私は機能をレジストリに新しいですので、私は彼らと周りの混乱へのVMを使用して、私は何ができるかを見てきました。現在、サブキーとHKEY_CURRENT_USERの作成、読み取り、その後の削除をテストしようとしています。現時点では、私は削除以外のすべてのことをそのリストで行うことができます。
//This first sample will attempt to create a test key under HKEY_CURRENT_USER
Console.WriteLine("Creating subkey under HKEY_CURRENT_USER");
RegistryKey testKey2 = Registry.CurrentUser.CreateSubKey("SubKeyTester");
Console.WriteLine("testKey2 is now assigned to {0}", testKey2);
//This ensures that testKey2 is the value that I think it is
Console.WriteLine("testKey2 value = {0}\n", testKey2);
の出力と
:HKEY_CURRENT_USERの下にサブキーを作成
テストを始めて...
testKey2が今HKEY_CURRENT_USER \ SubKeyTesterに割り当てられている
testKey2次のように関連するコードです値= HKEY_CURRENT_USER \ SubKeyTester
注目すべきは、testKey2が保存された「HKEY_CURRENT_USER \ SubK私が期待していた "SubKeyTester"ではなく、 これ以降、HKEY_CURRENT_USERの下にあるサブキーを確認し、Yes、 "SubKeyTester"がCurrentUserサブキーの間に実際に存在することを確認できます。さて、私はそれを削除する必要があります。次のように私のコードは次のとおりです。
//This portion of the test will attempt to delete SubKeyTester from
//HKEY_CURRENT_USER
Console.WriteLine("Attempting to delete test subkey\n");
try
{
Registry.CurrentUser.DeleteSubKeyTree(testKey2.ToString());
Console.WriteLine("Target has been deleted\n");
}
catch(Exception e)
{
Console.WriteLine("The key targeted for deletion... is not found.\nError: {0}\n", e);
}
//Another safety check to verify that only SubKeyTester has been deleted
Console.WriteLine("There are {0} subkeys under {1}.",
Registry.CurrentUser.SubKeyCount.ToString(), Registry.CurrentUser.Name);
foreach (string subKeyName in Registry.CurrentUser.GetSubKeyNames())
Console.WriteLine(subKeyName);
testKey2.Close();
出力は私を知らせる: 「エラー:System.ArgumentExceptionのは:サブキーが存在しないため、サブキーツリーを削除することはできません。」 次に、testKey "SubKeyTester"を含むHKEY_CURRENT_USERの下にあるすべてのサブキーを一覧表示します。
私はこの問題は、ちょうどDeleteSubKeyTreeコールでそのサブキーへのパスをハードコーディングすることによって解決できると信じて、私はそれを避けたいです。むしろ、単にパラメータとしてtestKey2を呼び出し、そのようにキーを削除することができます。それを行う方法はありますか?
誰かがより良い答えを知っていれば、私の答えはさておき、自由に投稿してください。私は確かに学ぶことを喜んでいる! – MrSpudtastic