Example #1
0
        protected override void ExecuteMatch(
            FileMatch fileMatch,
            string directoryPath)
        {
            try
            {
                if (!DryRun)
                {
                    FileSystemHelpers.Delete(
                        fileMatch,
                        contentOnly: DeleteOptions.ContentOnly,
                        includingBom: DeleteOptions.IncludingBom,
                        filesOnly: DeleteOptions.FilesOnly,
                        directoriesOnly: DeleteOptions.DirectoriesOnly);
                }

                Report(fileMatch);

                Telemetry.IncrementProcessedCount(fileMatch.IsDirectory);
            }
            catch (Exception ex) when(ex is IOException ||
                                      ex is UnauthorizedAccessException)
            {
                Report(fileMatch, ex);
            }
        }
Example #2
0
        protected override void ExecuteResult(
            FileSystemFinderResult result,
            SearchContext context,
            string baseDirectoryPath  = null,
            ColumnWidths columnWidths = null)
        {
            string indent = GetPathIndent(baseDirectoryPath);

            if (!Options.OmitPath)
            {
                WritePath(context, result, baseDirectoryPath, indent, columnWidths);
            }

            bool deleted = false;

            if (!Options.Ask || AskToExecute(context, (Options.ContentOnly) ? "Delete content?" : "Delete?", indent))
            {
                try
                {
                    if (!Options.DryRun)
                    {
                        FileSystemHelpers.Delete(
                            result,
                            contentOnly: Options.ContentOnly,
                            includingBom: Options.IncludingBom,
                            filesOnly: Options.FilesOnly,
                            directoriesOnly: Options.DirectoriesOnly);

                        deleted = true;
                    }

                    if (result.IsDirectory)
                    {
                        context.Telemetry.ProcessedDirectoryCount++;
                    }
                    else
                    {
                        context.Telemetry.ProcessedFileCount++;
                    }
                }
                catch (Exception ex) when(ex is IOException ||
                                          ex is UnauthorizedAccessException)
                {
                    WriteFileError(ex, indent: indent);
                }
            }

            if (result.IsDirectory &&
                deleted)
            {
                OnDirectoryChanged(new DirectoryChangedEventArgs(result.Path, null));
            }
        }
Example #3
0
        protected override void ExecuteMatchCore(
            FileMatch fileMatch,
            SearchContext context,
            string?baseDirectoryPath  = null,
            ColumnWidths?columnWidths = null)
        {
            string indent = GetPathIndent(baseDirectoryPath);

            if (!Options.OmitPath)
            {
                WritePath(context, fileMatch, baseDirectoryPath, indent, columnWidths, includeNewline: true);
            }

            if (Options.AskMode == AskMode.File &&
                !AskToExecute(context, (Options.ContentOnly) ? "Delete content?" : "Delete?", indent))
            {
                return;
            }

            try
            {
                if (!Options.DryRun)
                {
                    FileSystemHelpers.Delete(
                        fileMatch,
                        contentOnly: Options.ContentOnly,
                        includingBom: Options.IncludingBom,
                        filesOnly: Options.FilesOnly,
                        directoriesOnly: Options.DirectoriesOnly);
                }

                if (fileMatch.IsDirectory)
                {
                    context.Telemetry.ProcessedDirectoryCount++;
                }
                else
                {
                    context.Telemetry.ProcessedFileCount++;
                }
            }
            catch (Exception ex) when(ex is IOException ||
                                      ex is UnauthorizedAccessException)
            {
                WriteFileError(ex, indent: indent);
            }
        }
Example #4
0
        protected override void ExecuteMatch(
            FileMatch fileMatch,
            string directoryPath)
        {
            bool deleted = false;

            try
            {
                if (!DryRun)
                {
                    FileSystemHelpers.Delete(
                        fileMatch,
                        contentOnly: DeleteOptions.ContentOnly,
                        includingBom: DeleteOptions.IncludingBom,
                        filesOnly: DeleteOptions.FilesOnly,
                        directoriesOnly: DeleteOptions.DirectoriesOnly);

                    deleted = true;
                }

                Report(fileMatch);

                Telemetry.IncrementProcessedCount(fileMatch.IsDirectory);
            }
            catch (Exception ex) when(ex is IOException ||
                                      ex is UnauthorizedAccessException)
            {
                Report(fileMatch, ex);
            }

            if (fileMatch.IsDirectory &&
                deleted)
            {
                OnDirectoryChanged(new DirectoryChangedEventArgs(fileMatch.Path, null));
            }
        }