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