System.IO.Directory.Delete Method

Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Syntax

public static void Delete (string path, bool recursive)

Parameters

path
The name of the directory to remove.
recursive
true to remove directories, subdirectories, and files in path; otherwise, false.

Exceptions

TypeReason
ArgumentException path is a zero-length string, contains only white space, or contains one or more implementation-specific invalid characters.
ArgumentNullException path is null.
System.IO.DirectoryNotFoundExceptionThe specified path was not found.
System.IO.IOExceptionThe directory specified by path is read-only, or recursive is false and path is not an empty directory.
System.Security.SecurityExceptionThe caller does not have the required permission.
System.IO.PathTooLongExceptionThe length of path or the absolute path information for path exceeds the system-defined maximum length.
UnauthorizedAccessExceptionThe caller does not have the required permission.

Remarks

The path parameter may specify relative or absolute path information. Relative path information is interpreted as relative to the current working directory. To obtain the current working directory, see Directory.GetCurrentDirectory.

Trailing spaces are removed from the end of the path parameter before deleting the directory.

The path parameter is not case-sensitive.

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.

In some cases, if you have the specified directory open in File Explorer, the Directory.Delete(string, bool) method may not be able to delete it.

Permissions

TypeReason
System.Security.Permissions.FileIOPermissionRequires permission to write to the specified directory. See System.Security.Permissions.FileIOPermissionAccess.Write.

Requirements

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0