private void deleteFilesOnDir(List <ITaskItem> filesDeleted, string directory) { foreach (string filePattern in FilePatternsToDeleteOnClean.Split(';')) { IEnumerable <string> files = Directory.EnumerateFiles(directory, filePattern); deleteFiles(filesDeleted, directory, files); } }
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); }