file-folder-helper/Helpers/HelperRenameToOldMoveDeleteOld.cs
Mike Phares 5fe51ef645 nuget bump
2023-11-02
2023-11-08
net8.0
editorconfig
NuGet NuSpec
Kanban
2023-11-14 07:54:34 -07:00

50 lines
1.8 KiB
C#

using Microsoft.Extensions.Logging;
namespace File_Folder_Helper.Helpers;
internal static class HelperRenameToOldMoveDeleteOldMerge
{
internal static void RenameToOldMoveDeleteOld(ILogger log, string argsZero)
{
string checkDirectory = argsZero[0..^1];
if (!Directory.Exists(checkDirectory))
log.LogInformation("<{checkDirectory}> doesn't exist!", checkDirectory);
else
{
string renameFile;
string destinationFile;
List<string> deleteFiles = [];
string[] moveFiles = Directory.GetFiles(argsZero, "*", SearchOption.TopDirectoryOnly);
log.LogInformation("<{moveFiles.Length}> to move", moveFiles.Length);
foreach (string moveFile in moveFiles)
{
destinationFile = string.Concat(checkDirectory, moveFile[argsZero.Length..]);
if (!File.Exists(destinationFile))
File.Move(moveFile, destinationFile);
else
{
renameFile = Path.ChangeExtension(destinationFile, string.Concat(Path.GetExtension(destinationFile), ".old"));
File.Move(destinationFile, renameFile);
File.Move(moveFile, destinationFile);
deleteFiles.Add(renameFile);
}
}
log.LogInformation("<{deleteFiles.Count}> to delete", deleteFiles.Count);
foreach (string deleteFile in deleteFiles)
{
for (short i = 0; i < short.MaxValue; i++)
{
try
{
File.Delete(deleteFile);
break;
}
catch (Exception) { }
Thread.Sleep(500);
}
}
}
}
}