1

The following is what i have when i try to delete a folder:

namespace sortfolder
{
    class Program
    {
        static string path = "C:\\Work\\6.70_Extensions\\NightlyBuild\\";

        static void Main(string[] args)
        {
            var di = new DirectoryInfo("C:\\Work\\6.70_Extensions\\NightlyBuild");

            foreach (var file in di.GetFiles("*", SearchOption.AllDirectories))
                file.Attributes &= ~FileAttributes.ReadOnly;

            var files = Directory.GetDirectories(path, "SASE Lab Tools.*");
            foreach(var file in files)
            Console.WriteLine(file);
            foreach(var file in files.OrderByDescending(x=>x).Skip(7))
            Console.WriteLine(file);
            foreach(var file in files.OrderByDescending(x=>x).Skip(7))
            Directory.Delete(file);
        }
    }
}

As mentioned in the title, i would like to delete this folder along with all its content. How do i go about doing it? Apparently i have IOException @ Directory.Delete(file) as it contains files

jeremychan
  • 4,309
  • 10
  • 42
  • 56

2 Answers2

3

Directory.Delete has a second parameter which takes a bool = recrusive. Use that overload instead.

http://msdn.microsoft.com/en-us/library/fxeahc5f.aspx

Aamir
  • 14,882
  • 6
  • 45
  • 69
3

You missing true Directory.Delete(file,true);
For example

public static void Main() 
    {
        string path = @"c:\MyDir\temp";
        try 
        {
            Directory.Delete(path, true);
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
Amit
  • 21,570
  • 27
  • 74
  • 94