From 966eb653be727dede458b52863589521463651b6 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Wed, 24 Jul 2024 08:24:21 -0700 Subject: [PATCH] EAF CopyDirectories --- .vscode/launch.json | 13 ++++++----- Day/2024-Q3/Helper-2024-07-24.cs | 38 ++++++++++++++++++++++++++++++++ Day/HelperDay.cs | 2 ++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 Day/2024-Q3/Helper-2024-07-24.cs diff --git a/.vscode/launch.json b/.vscode/launch.json index 6780bf2..05ea8de 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,12 +13,13 @@ "args": [ "s", "X", - "L:/Git/Notes-Network/.Network/.vscode/helper", - "Day-Helper-2024-07-18", - "hosts.jsonl", - "Network", - "Wired", - ".md", + "\\\\mesfs.infineon.com\\EC_Characterization_Si\\Dummy", + "Day-Helper-2024-07-24", + "*Staging*v2*56*0*", + "Staging__v2_56_0__", + "Production__v2_56_0__", + "5555", + "6666", "7777", "8888", "9999" diff --git a/Day/2024-Q3/Helper-2024-07-24.cs b/Day/2024-Q3/Helper-2024-07-24.cs new file mode 100644 index 0000000..27f20fd --- /dev/null +++ b/Day/2024-Q3/Helper-2024-07-24.cs @@ -0,0 +1,38 @@ +using Microsoft.Extensions.Logging; +using System.Diagnostics; + +namespace File_Folder_Helper.Day; + +internal static partial class Helper20240724 +{ + + internal static void CopyDirectories(ILogger logger, List args) + { + string[] files; + Process process; + string checkDirectory; + string filter = args[3]; + string replaceWith = args[4]; + string searchPattern = args[2]; + string sourceDirectory = Path.GetFullPath(args[0]); + string[] foundDirectories = Directory.GetDirectories(sourceDirectory, searchPattern, SearchOption.AllDirectories); + logger.LogInformation($"Found {foundDirectories.Length} directories"); + foreach (string foundDirectory in foundDirectories) + { + if (!foundDirectory.Contains(filter)) + continue; + logger.LogDebug(foundDirectory); + checkDirectory = foundDirectory.Replace(filter, replaceWith); + if (Directory.Exists(checkDirectory)) + { + files = Directory.GetFiles(checkDirectory, "*", SearchOption.AllDirectories); + if (files.Length > 0) + continue; + Directory.Delete(checkDirectory); + } + process = Process.Start("cmd.exe", $"/c xCopy \"{foundDirectory}\" \"{checkDirectory}\" /S /E /I /H /Y"); + process.WaitForExit(); + } + } + +} \ No newline at end of file diff --git a/Day/HelperDay.cs b/Day/HelperDay.cs index 0050ea6..6e57626 100644 --- a/Day/HelperDay.cs +++ b/Day/HelperDay.cs @@ -81,6 +81,8 @@ internal static class HelperDay Day.Helper20240711.GitRemoteRemove(logger, args); else if (args[1] == "Day-Helper-2024-07-18") Day.Helper20240718.JsonToMarkdown(logger, args); + else if (args[1] == "Day-Helper-2024-07-24") + Day.Helper20240724.CopyDirectories(logger, args); else throw new Exception(appSettings.Company); }