Verzeichnisse unter C# löschen

using System;
using System.Collections.Generic;
using System.Text;

namespace Helper
{
    public class FileSystem
    {
        private static string _operationDirNotExist = "Can not find the directory";
        private static string _operationDirNotEmpty = "Directory is not empty";
        private static string _operationSuccess = "success";
        private static string _operationFailed = "failed";

        public static void DeleteAllSubfolders(string directoryPath)
        {
            //find files/data in the current directory an delete them
            foreach (string fileName in System.IO.Directory.GetFiles(directoryPath))
            {
                try
                {
                    System.IO.File.Delete(fileName);
                }
                catch
                {
                    //Some files/data produce an exception if they cannot be deleted
                    //throw Exception ex;
                }
            }
            //find subdirectorys in the current directory an delete them recursiv
            foreach (string directoryName in System.IO.Directory.GetDirectories(directoryPath))
            {
                DeleteAllSubfolders(directoryName);
                try
                {
                    //If no undeletable files/data are present the recursive search will be killed
                    System.IO.Directory.Delete(directoryName, true);
                }
                catch
                {
                    //throw Exception ex;
                }
            }
        }

        public static string DeleteDirectory(string directoryPath, bool recursiv, bool deleteFiles)
        {
            string result = _operationFailed;
            if (System.IO.Directory.Exists(directoryPath))
            {
                if (recursiv == false && deleteFiles == false)
                {
                    System.IO.Directory.Delete(directoryPath, false);

                    if (System.IO.Directory.Exists(directoryPath))
                    {
                        result = _operationDirNotEmpty;
                    }
                    else
                    {
                        result = _operationSuccess;
                    }
                }

                if(recursiv == true && deleteFiles == false)
                {
                    System.IO.Directory.Delete(directoryPath, true);

                    if (System.IO.Directory.Exists(directoryPath))
                    {
                        result = _operationDirNotEmpty;
                    }
                    else
                    {
                        result = _operationSuccess;
                    }
                }

                if (recursiv == true && deleteFiles == true)
                {
                    System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(directoryPath);

                    DeleteAllSubfolders(directoryPath);

                    System.IO.Directory.Delete(directoryPath, true);

                    if (System.IO.Directory.Exists(directoryPath))
                    {
                        result = _operationDirNotEmpty;
                    }
                    else
                    {
                        result = _operationSuccess;
                    }
                }

                if (recursiv == false && deleteFiles == true)
                {

                    //find files/data in the current directory and delete them
                    foreach (string fileName in System.IO.Directory.GetFiles(directoryPath))
                    {
                        try
                        {
                            System.IO.File.Delete(fileName);
                        }
                        catch
                        {
                            //Some files/data produce an exception if they cannot be deleted
                            //throw Exception ex;
                        }
                    }

                    System.IO.Directory.Delete(directoryPath, false);

                    if (System.IO.Directory.Exists(directoryPath))
                    {
                        result = _operationDirNotEmpty;
                    }
                    else
                    {
                        result = _operationSuccess;
                    }
                }

            }
            else
            {
                result = _operationDirNotExist;
            }
            return result;
        }
    }
}