Directory.Delete Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет указанный каталог и при необходимости любые вложенные каталоги.
Перегрузки
| Имя | Описание |
|---|---|
| Delete(String) |
Удаляет пустой каталог из указанного пути. |
| Delete(String, Boolean) |
Удаляет указанный каталог и, если указано, все вложенные каталоги и файлы в каталоге. |
Delete(String)
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
Удаляет пустой каталог из указанного пути.
public:
static void Delete(System::String ^ path);
public static void Delete(string path);
static member Delete : string -> unit
Public Shared Sub Delete (path As String)
Параметры
- path
- String
Имя пустого каталога, который нужно удалить. Этот каталог должен быть записываемым и пустым.
Исключения
Файл с тем же именем и расположением, указанными в path ней.
–или–
Каталог — это текущий рабочий каталог приложения.
–или–
Каталог, указанный не является пустым path .
–или–
Каталог доступен только для чтения или содержит файл только для чтения.
–или–
Каталог используется другим процессом.
Вызывающий объект не имеет требуемого разрешения.
Версии .NET Framework и .NET Core старше 2.1: path представляет собой строку нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
path равно null.
Указанный путь, имя файла или оба превышают определенную системой максимальную длину.
path не существует или не удалось найти.
–или–
Указанный путь недопустим (например, он находится на несопоставленном диске).
Примеры
В следующем примере показано, как создать новый каталог и подкаталог, а затем удалить только подкаталог.
using System;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string subPath = @"C:\NewDirectory\NewSubDirectory";
try
{
Directory.CreateDirectory(subPath);
Directory.Delete(subPath);
bool directoryExists = Directory.Exists(@"C:\NewDirectory");
bool subDirectoryExists = Directory.Exists(subPath);
Console.WriteLine("top-level directory exists: " + directoryExists);
Console.WriteLine("sub-directory exists: " + subDirectoryExists);
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.Message);
}
}
}
}
open System.IO
let subPath = @"C:\NewDirectory\NewSubDirectory"
try
Directory.CreateDirectory subPath |> ignore
Directory.Delete subPath
let directoryExists = Directory.Exists @"C:\NewDirectory"
let subDirectoryExists = Directory.Exists subPath
printfn $"top-level directory exists: {directoryExists}"
printfn $"sub-directory exists: {subDirectoryExists}"
with e ->
printfn $"The process failed: {e.Message}"
Imports System.IO
Module Module1
Sub Main()
Dim subPath = "C:\NewDirectory\NewSubDirectory"
Try
Directory.CreateDirectory(subPath)
Directory.Delete(subPath)
Dim directoryExists = Directory.Exists("C:\NewDirectory")
Dim subDirectoryExists = Directory.Exists(subPath)
Console.WriteLine("top-level directory exists: " & directoryExists)
Console.WriteLine("sub-directory exists: " & subDirectoryExists)
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.Message)
End Try
End Sub
End Module
Комментарии
Этот метод работает идентично Delete(String, Boolean)false указанному для второго параметра.
Параметр может указывать относительные или абсолютные path сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Чтобы получить текущий рабочий каталог, см. GetCurrentDirectory.
Конечные пробелы удаляются из конца path параметра перед удалением каталога.
Этот метод создает исключение, IOException если каталог, указанный в параметре path , содержит файлы или вложенные каталоги.
Конфиденциальность регистра path параметра соответствует файловой системе, в которой выполняется код. Например, это не учитывает регистр в NTFS (файловая система Windows по умолчанию) и учитывает регистр в файловых системах Linux.
В некоторых случаях, если у вас есть указанный каталог, открытый в проводнике, Delete метод может не удалить его.
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
Delete(String, Boolean)
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
Удаляет указанный каталог и, если указано, все вложенные каталоги и файлы в каталоге.
public:
static void Delete(System::String ^ path, bool recursive);
public static void Delete(string path, bool recursive);
static member Delete : string * bool -> unit
Public Shared Sub Delete (path As String, recursive As Boolean)
Параметры
- path
- String
Имя удаляемого каталога.
- recursive
- Boolean
true Для удаления каталогов, подкаталогов и файлов в ; в pathпротивном случае false.
Исключения
Файл с тем же именем и расположением, указанными в path ней.
–или–
Каталог, указанный path только для чтения или recursivefalsepath не является пустым каталогом.
–или–
Каталог — это текущий рабочий каталог приложения.
–или–
Каталог содержит файл только для чтения.
–или–
Каталог используется другим процессом.
Вызывающий объект не имеет требуемого разрешения.
Версии .NET Framework и .NET Core старше 2.1: path представляет собой строку нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
path равно null.
Указанный путь, имя файла или оба превышают определенную системой максимальную длину.
path не существует или не удалось найти.
–или–
Указанный путь недопустим (например, он находится на несопоставленном диске).
Примеры
В следующем примере показано, как создать новый каталог, подкаталог и файл в подкаталоге, а затем рекурсивно удалить все новые элементы.
using System;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string topPath = @"C:\NewDirectory";
string subPath = @"C:\NewDirectory\NewSubDirectory";
try
{
Directory.CreateDirectory(subPath);
using (StreamWriter writer = File.CreateText(subPath + @"\example.txt"))
{
writer.WriteLine("content added");
}
Directory.Delete(topPath, true);
bool directoryExists = Directory.Exists(topPath);
Console.WriteLine("top-level directory exists: " + directoryExists);
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.Message);
}
}
}
}
open System.IO
let topPath = @"C:\NewDirectory"
let subPath = @"C:\NewDirectory\NewSubDirectory"
try
Directory.CreateDirectory(subPath) |> ignore
do
use writer = File.CreateText(subPath + @"\example.txt")
writer.WriteLine "content added"
Directory.Delete(topPath, true)
let directoryExists = Directory.Exists topPath
printfn $"top-level directory exists: {directoryExists}"
with e ->
printfn $"The process failed: {e.Message}"
Imports System.IO
Module Module1
Sub Main()
Dim topPath = "C:\NewDirectory"
Dim subPath = "C:\NewDirectory\NewSubDirectory"
Try
Directory.CreateDirectory(subPath)
Using writer As StreamWriter = File.CreateText(subPath + "\example.txt")
writer.WriteLine("content added")
End Using
Directory.Delete(topPath, True)
Dim directoryExists = Directory.Exists(topPath)
Console.WriteLine("top-level directory exists: " & directoryExists)
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.Message)
End Try
End Sub
End Module
Комментарии
Параметр может указывать относительные или абсолютные path сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Чтобы получить текущий рабочий каталог, см. GetCurrentDirectory.
Конечные пробелы удаляются из конца path параметра перед удалением каталога.
Конфиденциальность регистра path параметра соответствует файловой системе, в которой выполняется код. Например, это не учитывает регистр в NTFS (файловая система Windows по умолчанию) и учитывает регистр в файловых системах Linux.
recursive Если параметр заданtrue, пользователь должен иметь разрешение на запись для текущего каталога, а также для всех подкаталогов.
Поведение этого метода немного отличается при удалении каталога, содержащего точку повторного измерения, например символьную ссылку или точку подключения. Если точка повторного выполнения является каталогом, например точкой подключения, она отключена и точка подключения удаляется. Этот метод не повторяется через точку повторного просмотра. Если точка повторного измерения является символьной ссылкой на файл, то точка повторного выполнения удаляется, а не целевой объект символьной ссылки.
В некоторых случаях, если у вас есть указанный каталог, открытый в проводнике, Delete метод может не удалить его.
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл