Delete Method (String)
Collapse the table of content
Expand the table of content

Directory.Delete Method (String)


Deletes an empty directory from a specified path.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public static void Delete(
	string path


Type: System.String

The name of the empty directory to remove. This directory must be writable and empty.

Exception Condition

A file with the same name and location specified by path exists.


The directory is the application's current working directory.


The directory specified by path is not empty.


The directory is read-only or contains a read-only file.


The directory is being used by another process.


The caller does not have the required permission.


path is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the GetInvalidPathChars method.


path is null.


The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters and file names must be less than 260 characters.


path does not exist or could not be found.


The specified path is invalid (for example, it is on an unmapped drive).

This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

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 GetCurrentDirectory.

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

This method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

The path parameter is not case-sensitive.

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

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";


                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);

for writing to the specified directory. Associated enumeration: FileIOPermissionAccess.Write

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
© 2015 Microsoft