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 метод .