35 lines
1.4 KiB
C#
35 lines
1.4 KiB
C#
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace File_Folder_Helper.ADO2025.PI6;
|
|
|
|
internal static partial class Helper20250521 {
|
|
|
|
private record Record(string Directory, string FileNameWithoutExtension);
|
|
|
|
internal static void MatchDirectory(ILogger<Worker> logger, List<string> args) {
|
|
Record record;
|
|
string[] files;
|
|
string checkFile;
|
|
string searchPattern = args[2];
|
|
string fileNameWithoutExtension;
|
|
string searchPatternB = args[3];
|
|
Dictionary<string, string> keyValuePairs = [];
|
|
string sourceDirectory = Path.GetFullPath(args[0].Split('~')[0]);
|
|
files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
|
|
foreach (string file in files) {
|
|
keyValuePairs.Add(Path.GetFileNameWithoutExtension(file), Path.GetDirectoryName(file));
|
|
}
|
|
files = Directory.GetFiles(sourceDirectory, searchPatternB, SearchOption.AllDirectories);
|
|
foreach (string file in files) {
|
|
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file);
|
|
if (!keyValuePairs.TryGetValue(fileNameWithoutExtension, out string? match))
|
|
continue;
|
|
checkFile = Path.Combine(match, Path.GetFileName(file));
|
|
if (File.Exists(checkFile))
|
|
continue;
|
|
File.Move(file, checkFile);
|
|
}
|
|
}
|
|
|
|
} |