using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
namespace DirectoryTest
{
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("Creating test directory");
CreateTestDirectory();
}
catch (Exception ex)
{
DisplayError(ex);
WaitForKey();
return;
}
Console.WriteLine("Directory created");
WaitForKey();
DeleteTestDirectory();
//SafeDeleteTestDirectory();
Console.WriteLine("Directory deleted");
WaitForKey();
}
static void DeleteTestDirectory()
{
try
{
Console.WriteLine("Deleting test directory");
Directory.Delete("c:\\Temp\\Test1", true);
}
catch (Exception ex)
{
DisplayError(ex);
WaitForKey();
return;
}
}
static void SafeDeleteTestDirectory()
{
try
{
Console.WriteLine("Deleting test directory with retry");
Directory.Delete("c:\\Temp\\Test1", true);
}
catch (Exception ex)
{
DisplayError(ex);
Thread.Sleep(1000);
Console.WriteLine("Failed! Trying again...");
try
{
Directory.Delete("c:\\Temp\\Test1", true);
}
catch (Exception ex2)
{
DisplayError(ex2);
WaitForKey();
return;
}
}
}
static char WaitForKey()
{
Console.WriteLine("Press any key...");
ConsoleKeyInfo cki = Console.ReadKey();
return cki.KeyChar;
}
static void CreateTestDirectory()
{
Directory.CreateDirectory("c:\\Temp\\Test1");
Directory.CreateDirectory("c:\\Temp\\Test1\\Test2");
using (StreamWriter sw = new StreamWriter("c:\\Temp\\Test1\\TestFile1.txt", false))
{
sw.WriteLine("This is a line of text");
sw.Close();
}
using (StreamWriter sw = new StreamWriter("c:\\Temp\\Test1\\Test2\\TestFile2.txt", false))
{
sw.WriteLine("This is a line of text");
sw.Close();
}
}
static void DisplayError(Exception ex)
{
Exception current = ex;
while (null != current)
{
Console.WriteLine("Error: " + ex.Message);
Console.WriteLine("Stack: " + ex.StackTrace);
Console.WriteLine(Environment.NewLine);
current = current.InnerException;
}
}
}
}