EAF CopyDirectories

This commit is contained in:
Mike Phares 2024-07-24 08:24:21 -07:00
parent 2aa9c0f018
commit 966eb653be
3 changed files with 47 additions and 6 deletions

13
.vscode/launch.json vendored
View File

@ -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"

View File

@ -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<Worker> logger, List<string> 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();
}
}
}

View File

@ -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);
}