private void Clear(DirectoryInfoBase directoryInfo) { foreach (var subDirectory in directoryInfo.GetDirectories()) { var upperDirectoryName = subDirectory.Name.ToUpperInvariant(); if (Constants.PackageFolders.Contains(upperDirectoryName)) { _consoleWriter.WriteLine("Deleting: " + subDirectory.Name, null, ConsoleColor.Yellow); subDirectory.GetFiles().ToList().ForEach( f => { _actionHandler.HandleAction(f.Delete); }); _actionHandler.HandleAction(() => subDirectory.Delete(true)); continue; } Clear(subDirectory); } }