private void GetCounts()
        {
            IList <string> directories = GetDirectoriesForCounts();

            foreach (string directory in directories)
            {
                dispOut.Events.Add(Messages.GETTING_COUNTS + directory);

                IOStats stats = GetDirectoryCounts(directory);

                dispOut.Events.Add(Messages.FILE_COUNT_LABEL + stats.FileCounts.ToString());
                dispOut.Events.Add(Messages.DIRECTORY_COUNT_LABEL + stats.DirectoryCounts.ToString());
            }
        }
        private IOStats GetDirectoryCounts(string directory)
        {
            IOStats stats    = new IOStats();
            IOStats subStats = null;

            string[] files       = Directory.GetFiles(directory);
            string[] directories = Directory.GetDirectories(directory);

            stats.FileCounts      = files.Length;
            stats.DirectoryCounts = directories.Length;

            foreach (string dir in directories)
            {
                subStats = GetDirectoryCounts(dir);

                stats.FileCounts      += subStats.FileCounts;
                stats.DirectoryCounts += subStats.DirectoryCounts;
            }

            return(stats);
        }