Type Reason 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.DirectoryNotFoundException The specified path was not found. System.IO.IOException The directory specified by path is read-only, or recursive is false and path is not an empty directory. System.Security.SecurityException The caller does not have the required permission. System.IO.PathTooLongException The length of path or the absolute path information for path exceeds the system-defined maximum length. UnauthorizedAccessException The caller does not have the required permission.
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.
Type | Reason |
---|---|
System.Security.Permissions.FileIOPermission | Requires permission to write to the specified directory. See System.Security.Permissions.FileIOPermissionAccess.Write. |