namespace File_Folder_Helper.Helpers;

internal static class HelperDeleteEmptyDirectories
{

    internal static bool DeleteEmptyDirectories(string rootDirectory)
    {
        bool result;
        if (!Directory.Exists(rootDirectory))
            result = false;
        else
        {
            string[] files;
            string[] directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
            if (directories.Length > 0)
                files = Array.Empty<string>();
            else
                files = Directory.GetFiles(rootDirectory, "*", SearchOption.AllDirectories);
            if (directories.Length == 0 && files.Length == 0)
            {
                result = true;
                Directory.Delete(rootDirectory);
            }
            else
            {
                result = false;
                foreach (string directory in directories)
                {
                    result = DeleteEmptyDirectories(directory);
                    if (result)
                        result = DeleteEmptyDirectories(directory);
                }
                if (files is null)
                {
                    directories = Directory.GetDirectories(rootDirectory, "*", SearchOption.TopDirectoryOnly);
                    result = directories.Length == 0;
                }
            }
        }
        return result;
    }

}