46 lines
1.9 KiB
C#
46 lines
1.9 KiB
C#
using File_Folder_Helper.Helpers;
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace File_Folder_Helper.ADO2025.PI5;
|
|
|
|
internal static partial class Helper20250315 {
|
|
|
|
internal static void Empty(ILogger<Worker> logger, List<string> args) {
|
|
string[] searchPatterns = args[2].Split('~');
|
|
string sourceDirectory = Path.GetFullPath(args[0]);
|
|
if (searchPatterns.Length == 1) {
|
|
string[] files = Directory.GetFiles(sourceDirectory, searchPatterns[0], SearchOption.AllDirectories);
|
|
if (files.Length == 0)
|
|
logger.LogWarning("<{files}>(s)", files.Length);
|
|
else {
|
|
string directoryName;
|
|
string[] directories;
|
|
foreach (string file in files) {
|
|
directoryName = Path.GetDirectoryName(file) ?? throw new Exception();
|
|
directories = Directory.GetDirectories(directoryName, "*", SearchOption.TopDirectoryOnly);
|
|
foreach (string directory in directories)
|
|
HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, directory);
|
|
}
|
|
}
|
|
} else {
|
|
string[] files;
|
|
string checkFile;
|
|
HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, sourceDirectory);
|
|
foreach (string searchPattern in searchPatterns) {
|
|
files = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
|
|
if (files.Length == 0)
|
|
logger.LogWarning("<{files}>(s)", files.Length);
|
|
else {
|
|
foreach (string file in files) {
|
|
checkFile = $"{file}.json";
|
|
if (File.Exists(checkFile))
|
|
continue;
|
|
File.Move(file, checkFile);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
} |