Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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);
        }