FF-1615: Move and Copy now use common method to get additional files

This commit is contained in:
John Andrews
2024-06-17 08:41:13 +12:00
parent dc70c91ea9
commit 4ee50eeb20
12 changed files with 328 additions and 158 deletions

View File

@@ -1,5 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
using FileFlows.BasicNodes.Helpers;
using FileFlows.Plugin;
using FileFlows.Plugin.Attributes;
using FileFlows.Plugin.Helpers;
@@ -156,49 +157,24 @@ public class MoveFile : Node
if(AdditionalFiles?.Any() == true)
{
args.Logger?.ILog("Additional Files: " + string.Join(", ", AdditionalFiles));
var addFiles = FolderHelper.GetAdditionalFiles(args.Logger, args.FileService, args.ReplaceVariables,
shortNameLookup, srcDir, AdditionalFiles);
try
string destDir = FileHelper.GetDirectory(dest);
foreach (var addFile in addFiles)
{
string destDir = FileHelper.GetDirectory(dest);
args.FileService.DirectoryCreate(destDir);
args.Logger?.ILog("Looking for additional files in directory: " + srcDir);
foreach (var additionalOrig in AdditionalFiles)
try
{
string additional = args.ReplaceVariables(additionalOrig, stripMissing: true);
if (Regex.IsMatch(additionalOrig, @"\.[a-z0-9A-Z]+$") == false)
additional = "*" + additional; // add the leading start for the search
args.Logger?.ILog("Looking for additional files: " + additional);
var srcDirFiles = args.FileService.GetFiles(srcDir, additional).ValueOrDefault ?? new string[] { };
foreach(var addFile in srcDirFiles)
{
try
{
if (Regex.IsMatch(additional, @"\*\.[a-z0-9A-Z]+$"))
{
// make sure the file starts with same name
var addFileName = FileHelper.GetShortFileName(addFile);
if (addFileName.ToLowerInvariant().StartsWith(shortNameLookup.ToLowerInvariant()) ==
false)
continue;
}
args.Logger?.ILog("Additional files: " + addFile);
args.Logger?.ILog("Additional files: " + addFile);
string addFileDest = destDir + args.FileService.PathSeparator + FileHelper.GetShortFileName(addFile);
args.FileService.FileMove(addFile, addFileDest, true);
args.Logger?.ILog("Moved file: \"" + addFile + "\" to \"" + addFileDest + "\"");
}
catch(Exception ex)
{
args.Logger?.ILog("Failed moving file: \"" + addFile + "\": " + ex.Message);
}
}
string addFileDest = FileHelper.Combine(destDir, FileHelper.GetShortFileName(addFile));
args.FileService.FileMove(addFile, addFileDest, true);
args.Logger?.ILog("Moved file: \"" + addFile + "\" to \"" + addFileDest + "\"");
}
catch(Exception ex)
{
args.Logger?.ILog("Failed moving file: \"" + addFile + "\": " + ex.Message);
}
}
catch(Exception ex)
{
args.Logger.WLog("Error moving additional files: " + ex.Message);
}
}
else