private void deleteFiles(List <ITaskItem> filesDeleted, string directory, IEnumerable <string> files) { foreach (string file in files) { if (FilesExcludedFromClean.Contains(file)) { continue; } string fullPath = Path.Combine(directory, file); if (DoDelete) { File.Delete(fullPath); } filesDeleted.Add(new TaskItem(fullPath)); } }
public override bool Execute() { var deletedFiles = new List <string>(); if (!DoDelete) { return(true); } if (String.IsNullOrWhiteSpace(FilePatternsToDeleteOnClean)) { return(true); } if (String.IsNullOrEmpty(FilesExcludedFromClean)) { FilesExcludedFromClean = ""; } foreach (var folder in FoldersToClean) { foreach (string file in Directory.GetFiles(folder.ItemSpec, "*.*", SearchOption.AllDirectories).Where(s => FilePatternsToDeleteOnClean.Contains(Path.GetExtension(s).ToLower()))) { if (FilesExcludedFromClean.IndexOf(file) > 0) { continue; } try { var fullname = Path.Combine(folder.ItemSpec, file); File.Delete(fullname); deletedFiles.Add(fullname); } catch (Exception ex) { Logger.Instance.LogMessage($"Error while deleting file {Path.Combine(folder.ItemSpec, file)} {ex}"); } } } DeletedFiles = deletedFiles.Any() ? deletedFiles.Select(x => new TaskItem(x)).ToArray() : new TaskItem[0]; return(true); }