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

설명

이 메서드는 두 번째 매개 변수에 대해 지정 된 false Delete(String, Boolean)와 동일 하 게 동작 합니다.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.

이 메서드는 path 매개 변수에 지정 된 디렉터리에 파일 또는 하위 디렉터리가 포함 된 경우 IOException을 throw 합니다.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.

보안

FileIOPermission
지정된 된 디렉터리에 작성 합니다.for writing to the specified directory. 연결 된 열거형: WriteAssociated enumeration: Write

추가 정보

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

path의 디렉터리, 하위 디렉터리 및 파일을 제거하려면 true이고, 제거하지 않으려면 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로 지정한 디렉터리가 읽기 전용이거나 recursivefalse이고 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.

보안

FileIOPermission
지정된 된 디렉터리에 작성 합니다.for writing to the specified directory. 연결 된 열거형: WriteAssociated enumeration: Write

추가 정보

적용 대상