Directory.Delete Метод

Определение

Удаляет заданный каталог и при необходимости все подкаталоги.Deletes a specified directory, and optionally any subdirectories.

Перегрузки

Delete(String)

Удаляет пустой каталог по заданному пути.Deletes an empty directory from a specified path.

Delete(String, Boolean)

Удаляет заданный каталог и, при наличии соответствующей инструкции, все подкаталоги и файлы в нем.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Delete(String)

Удаляет пустой каталог по заданному пути.Deletes an empty directory from a specified path.

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

Имя пустого каталога, который необходимо удалить.The name of the empty directory to remove. Этот каталог должен поддерживать запись и быть пустым.This directory must be writable and empty.

Исключения

Файл с тем же именем и расположении, заданном path, уже существует.A file with the same name and location specified by path exists.

-или--or- Каталог является текущим рабочим каталогом приложения.The directory is the application's current working directory.

-или--or- Каталог, заданный параметром path, не пустой.The directory specified by path is not empty.

-или--or- Каталог доступен только для чтения или содержит файл, доступный только для чтения.The directory is read-only or contains a read-only file.

-или--or- Каталог используется другим процессом.The directory is being used by another process.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов.path is a zero-length string, contains only white space, or contains one or more invalid characters. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path имеет значение null.path is null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

Параметр path не существует или не найден.path does not exist or could not be found.

-или--or- Указан недопустимый путь (например, он ведет на несопоставленный диск).The specified path is invalid (for example, it is on an unmapped drive).

Примеры

В следующем примере показано, как создать новый каталог и подкаталог, а затем удалить только подкаталог.The following example shows how to create a new directory and subdirectory, and then delete only the subdirectory.

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);
            }
        }
    }
}
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 указанный для второго параметра.This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

pathПараметр может указывать сведения относительного или абсолютного пути.The path parameter may specify relative or absolute path information. Сведения об относительном пути интерпретируется как относительно текущего рабочего каталога.Relative path information is interpreted as relative to the current working directory. Сведения о получении текущего рабочего каталога см. в разделе GetCurrentDirectory .To obtain the current working directory, see GetCurrentDirectory.

Конечные пробелы удаляются из конца path параметра перед удалением каталога.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Этот метод создает исключение, IOException Если каталог, указанный в path параметре, содержит файлы или подкаталоги.This method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

pathПараметр не учитывает регистр.The path parameter is not case-sensitive.

В некоторых случаях, если указанный каталог открыт в проводнике, Delete метод может не иметь возможности его удалить.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

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

Delete(String, Boolean)

Удаляет заданный каталог и, при наличии соответствующей инструкции, все подкаталоги и файлы в нем.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

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

Имя каталога, который необходимо удалить.The name of the directory to remove.

recursive
Boolean

Значение true позволяет удалить каталоги, подкаталоги и файлы по заданному path, в противном случае — значение false.true to remove directories, subdirectories, and files in path; otherwise, false.

Исключения

Файл с тем же именем и расположении, заданном path, уже существует.A file with the same name and location specified by path exists.

-или--or- Каталог, заданный параметром path, доступен только для чтения, или recursive имеет значение false и path не является пустым каталогом.The directory specified by path is read-only, or recursive is false and path is not an empty directory.

-или--or- Каталог является текущим рабочим каталогом приложения.The directory is the application's current working directory.

-или--or- Каталог содержит файл только для чтения.The directory contains a read-only file.

-или--or- Каталог используется другим процессом.The directory is being used by another process.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов.path is a zero-length string, contains only white space, or contains one or more invalid characters. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path имеет значение null.path is null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

Параметр path не существует или не найден.path does not exist or could not be found.

-или--or- Указан недопустимый путь (например, он ведет на несопоставленный диск).The specified path is invalid (for example, it is on an unmapped drive).

Примеры

В следующем примере показано, как создать новый каталог, подкаталог и файл в подкаталоге, а затем рекурсивно удалить все новые элементы.The following example shows how to create a new directory, subdirectory, and file in the subdirectory, and then recursively delete all the new items.

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);
            }
        }
    }
}
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Параметр может указывать сведения относительного или абсолютного пути.The path parameter may specify relative or absolute path information. Сведения об относительном пути интерпретируется как относительно текущего рабочего каталога.Relative path information is interpreted as relative to the current working directory. Сведения о получении текущего рабочего каталога см. в разделе GetCurrentDirectory .To obtain the current working directory, see GetCurrentDirectory.

Конечные пробелы удаляются из конца path параметра перед удалением каталога.Trailing spaces are removed from the end of the path parameter before deleting the directory.

pathПараметр не учитывает регистр.The path parameter is not case-sensitive.

Если recursive параметр имеет значение true , пользователь должен иметь разрешение на запись для текущего каталога, а также для всех подкаталогов.If the recursive parameter is true, the user must have write permission for the current directory as well as for all subdirectories.

Поведение этого метода немного отличается при удалении каталога, содержащего точку повторного анализа, например символическую ссылку или точку подключения.The behavior of this method differs slightly when deleting a directory that contains a reparse point, such as a symbolic link or a mount point. Если точка повторного анализа является каталогом, например точкой подключения, она отключается и точка подключения удаляется.If the reparse point is a directory, such as a mount point, it is unmounted and the mount point is deleted. Этот метод не выполняет рекурсивный перебор точки повторного анализа.This method does not recurse through the reparse point. Если точка повторного анализа является символьной ссылкой на файл, то точка повторного анализа удаляется, а не целевой объект символьной ссылки.If the reparse point is a symbolic link to a file, the reparse point is deleted and not the target of the symbolic link.

В некоторых случаях, если указанный каталог открыт в проводнике, Delete метод может не иметь возможности его удалить.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

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