added option to copy/move nodes to also move additional files

This commit is contained in:
John Andrews
2022-02-12 18:29:44 +13:00
parent 939541842a
commit ade1f4a540
28 changed files with 174 additions and 105 deletions
+37
View File
@@ -26,6 +26,12 @@ namespace FileFlows.BasicNodes.File
[Boolean(4)]
public bool DeleteOriginal { get; set; }
[StringArray(5)]
public string[] AdditionalFiles { get; set; }
[Boolean(6)]
public bool AdditionalFilesFromOriginal { get; set; }
public override int Execute(NodeParameters args)
{
string dest = args.ReplaceVariables(DestinationPath, true);
@@ -68,9 +74,40 @@ namespace FileFlows.BasicNodes.File
var destDir = fiDest.DirectoryName;
args.CreateDirectoryIfNotExists(destDir ?? String.Empty);
var srcDir = AdditionalFilesFromOriginal ? new FileInfo(args.FileName).DirectoryName : new FileInfo(args.WorkingFile).DirectoryName;
if (args.MoveFile(dest) == false)
return -1;
if(AdditionalFiles?.Any() == true)
{
try
{
var diSrc = new DirectoryInfo(srcDir);
foreach (var additional in AdditionalFiles)
{
foreach(var addFile in diSrc.GetFiles(additional))
{
try
{
string addFileDest = Path.Combine(destDir, addFile.Name);
System.IO.File.Move(addFile.FullName, addFileDest, true);
args.Logger?.ILog("Moved file: \"" + addFile.FullName + "\" to \"" + addFileDest + "\"");
}
catch(Exception ex)
{
args.Logger?.ILog("Failed moving file: \"" + addFile.FullName + "\": " + ex.Message);
}
}
}
}
catch(Exception ex)
{
args.Logger.WLog("Error moving additinoal files: " + ex.Message);
}
}
if (DeleteOriginal && args.FileName != args.WorkingFile)
{
args.Logger?.ILog("Deleting orginal file: " + args.FileName);