From 0907901ca0fa667c0191b02b3ed482f8961d1ba4 Mon Sep 17 00:00:00 2001 From: "Matthew Parker [SSW]" <61717342+MattParkerDev@users.noreply.github.com> Date: Wed, 15 Nov 2023 22:16:57 +1000 Subject: [PATCH] clean build artifacts --- .../ViewModels/MainWindowViewModel.cs | 18 ++++++++++++++++++ DotNetSolutionTools.App/Views/MainWindow.axaml | 11 ++++++++++- DotNetSolutionTools.Core/CleanFolder.cs | 17 +++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 DotNetSolutionTools.Core/CleanFolder.cs diff --git a/DotNetSolutionTools.App/ViewModels/MainWindowViewModel.cs b/DotNetSolutionTools.App/ViewModels/MainWindowViewModel.cs index 104be19..6e8cda7 100644 --- a/DotNetSolutionTools.App/ViewModels/MainWindowViewModel.cs +++ b/DotNetSolutionTools.App/ViewModels/MainWindowViewModel.cs @@ -135,6 +135,24 @@ public partial class MainWindowViewModel : ViewModelBase ParityResults?.Add(e.Message); } } + + [RelayCommand] + private async Task DeleteBinAndObjFoldersInFolder(CancellationToken token) + { + ErrorMessages?.Clear(); + ParityResults.Clear(); + ResultsLabel = string.Empty; + try + { + CleanFolder.DeleteFolderWithOnlyBinAndObjSubFolders(SolutionFolderPath); + ResultsLabel = "Successfully deleted bin and obj folders"; + } + catch (Exception e) + { + ResultsLabel = "Failed to delete bin and obj folders"; + ParityResults?.Add(e.Message); + } + } [RelayCommand] private async Task LoadSolutionFile(CancellationToken token) diff --git a/DotNetSolutionTools.App/Views/MainWindow.axaml b/DotNetSolutionTools.App/Views/MainWindow.axaml index 9004d12..c9b317d 100644 --- a/DotNetSolutionTools.App/Views/MainWindow.axaml +++ b/DotNetSolutionTools.App/Views/MainWindow.axaml @@ -31,7 +31,7 @@ - + + diff --git a/DotNetSolutionTools.Core/CleanFolder.cs b/DotNetSolutionTools.Core/CleanFolder.cs new file mode 100644 index 0000000..1524ebc --- /dev/null +++ b/DotNetSolutionTools.Core/CleanFolder.cs @@ -0,0 +1,17 @@ + +namespace DotNetSolutionTools.Core; + +public static class CleanFolder +{ + public static void DeleteFolderWithOnlyBinAndObjSubFolders(string folderPath) + { + var binAndObjFolders = Directory.GetDirectories(folderPath, "*", SearchOption.AllDirectories) + .Where(x => x.EndsWith(Path.DirectorySeparatorChar + "bin") || x.EndsWith(Path.DirectorySeparatorChar + "obj")) + .ToList(); + + foreach (var folder in binAndObjFolders) + { + Directory.Delete(folder, true); + } + } +} \ No newline at end of file