The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DirectoryInfo.Delete Method (Boolean)


Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

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

public void Delete(
	bool recursive


Type: System.Boolean

true to delete this directory, its subdirectories, and all files; otherwise, false.

Exception Condition

The directory contains a read-only file.


The directory described by this DirectoryInfo object does not exist or could not be found.


The directory is read-only.


The directory contains one or more files or subdirectories and recursive is false.


The directory is the application's current working directory.


There is an open handle on the directory or on one of its files, and the operating system is Windows XP or earlier. This open handle can result from enumerating directories and files. For more information, see How to: Enumerate Directories and Files.


The caller does not have the required permission.

If the DirectoryInfo has no files or subdirectories, this method deletes the DirectoryInfo even if recursive is false. Attempting to delete a DirectoryInfo that is not empty when recursive is false throws an IOException.

For a list of common I/O tasks, see Common I/O Tasks.

The following example demonstrates deleting a directory. Because the directory is removed, first comment out the Delete line to test that the directory exists. Then uncomment the same line of code to test that the directory was removed successfully.

using System;
using System.IO;

public class DeleteTest 
    public static void Main() 

        // Make a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (di.Exists == false)

        // Create a subdirectory in the directory just created.
        DirectoryInfo dis = di.CreateSubdirectory("SubDir");

        // Process that directory as required.
        // ...

        // Delete the subdirectory. The true indicates that if subdirectories
        // or files are in this directory, they are to be deleted as well.

        // Delete the directory.


Write flag required for write permission to the DirectoryInfo and subdirectories to be deleted.

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