Поделиться через


RegistryKey.DeleteSubKeyTree Метод

Определение

Рекурсивно удаляет подраздел и все дочерние подразделы, при необходимости осуществляя обработку исключений.

Перегрузки

DeleteSubKeyTree(String, Boolean)

Рекурсивно удаляет указанный подраздел и все дочерние подразделы и определяет, нужно ли создавать исключение, если не удается найти подраздел.

DeleteSubKeyTree(String)

Рекурсивно удаляет вложенный раздел и все дочерние вложенные разделы.

DeleteSubKeyTree(String, Boolean)

Исходный код:
RegistryKey.cs

Рекурсивно удаляет указанный подраздел и все дочерние подразделы и определяет, нужно ли создавать исключение, если не удается найти подраздел.

public:
 void DeleteSubKeyTree(System::String ^ subkey, bool throwOnMissingSubKey);
public void DeleteSubKeyTree (string subkey, bool throwOnMissingSubKey);
[System.Runtime.InteropServices.ComVisible(false)]
public void DeleteSubKeyTree (string subkey, bool throwOnMissingSubKey);
member this.DeleteSubKeyTree : string * bool -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.DeleteSubKeyTree : string * bool -> unit
Public Sub DeleteSubKeyTree (subkey As String, throwOnMissingSubKey As Boolean)

Параметры

subkey
String

Имя удаляемого подраздела. В этой строке не учитывается регистр знаков.

throwOnMissingSubKey
Boolean

Указывает, должно ли вызываться исключение, если заданный подраздел найти невозможно. Если этот аргумент равен true, а заданный подраздел не существует, создается исключение. Если этот аргумент равен false, а заданный подраздел не существует, никакие действия не предпринимаются.

Атрибуты

Исключения

Предпринята попытка удаления корневого куста дерева.

-или-

Параметр subkey не задает правильный подраздел реестра, и значение throwOnMissingSubKey равно true.

subkey имеет значение null.

Раздел RegistryKey является закрытым (доступ к закрытым разделам невозможен).

У пользователя отсутствуют необходимые права доступа к реестру.

У пользователя отсутствуют разрешения, необходимые для удаления раздела.

Применяется к

DeleteSubKeyTree(String)

Исходный код:
RegistryKey.cs

Рекурсивно удаляет вложенный раздел и все дочерние вложенные разделы.

public:
 void DeleteSubKeyTree(System::String ^ subkey);
public void DeleteSubKeyTree (string subkey);
member this.DeleteSubKeyTree : string -> unit
Public Sub DeleteSubKeyTree (subkey As String)

Параметры

subkey
String

Удаляемый подраздел. В этой строке не учитывается регистр знаков.

Исключения

subkey имеет значение null.

Предпринята попытка удаления корневого куста реестра.

-или-

Параметр subkey не определяет правильный вложенный раздел реестра.

Произошла ошибка ввода-вывода.

У пользователя отсутствуют разрешения, необходимые для удаления раздела.

Объект RegistryKey, с которым выполняются действия, закрыт (доступ к закрытым разделам отсутствует).

У пользователя отсутствуют необходимые права доступа к реестру.

Примеры

Этот пример входит в состав более крупного примера использования класса RegistryKey.

// Delete or close the new subkey.
Console::Write( "\nDelete newly created registry key? (Y/N) " );
if ( Char::ToUpper( Convert::ToChar( Console::Read() ) ) == 'Y' )
{
   Registry::CurrentUser->DeleteSubKeyTree( "Test9999" );
   Console::WriteLine( "\nRegistry key {0} deleted.", test9999->Name );
}
else
{
   Console::WriteLine( "\nRegistry key {0} closed.", test9999->ToString() );
   test9999->Close();
}
// Delete or close the new subkey.
Console.Write("\nDelete newly created registry key? (Y/N) ");
if(Char.ToUpper(Convert.ToChar(Console.Read())) == 'Y')
{
    Registry.CurrentUser.DeleteSubKeyTree("Test9999");
    Console.WriteLine("\nRegistry key {0} deleted.",
        test9999.Name);
}
else
{
    Console.WriteLine("\nRegistry key {0} closed.",
        test9999.ToString());
    test9999.Close();
}
' Delete or close the new subkey.
Console.Write(vbCrLf & "Delete newly created " & _
    "registry key? (Y/N) ")
If Char.ToUpper(Convert.ToChar(Console.Read())) = "Y"C Then
    Registry.CurrentUser.DeleteSubKeyTree("Test9999")
    Console.WriteLine(vbCrLf & "Registry key {0} deleted.", _
        test9999.Name)
Else
    Console.WriteLine(vbCrLf & "Registry key {0} closed.", _
        test9999.ToString())
    test9999.Close()
End If

Комментарии

Для удаления подраздела и его дерева необходимо иметь соответствующие разрешения.

Внимание!

При удалении определенного ключа будут удалены все записи под ключом в дереве. Предупреждения не предоставляются. Если вы хотите удалить подраздел только в том случае, если у него нет дочерних подразделов, используйте DeleteSubKey метод .

См. также раздел

Применяется к