diff --git a/BasicNodes/File/CopyFile.cs b/BasicNodes/File/CopyFile.cs index e9ca7340..aefb4b69 100644 --- a/BasicNodes/File/CopyFile.cs +++ b/BasicNodes/File/CopyFile.cs @@ -98,12 +98,20 @@ namespace FileFlows.BasicNodes.File return -1; args.SetWorkingFile(dest); - if(PreserverOriginalDates && args.Variables.TryGetValue("ORIGINAL_CREATE_UTC", out object oCreateTimeUtc) && - args.Variables.TryGetValue("ORIGINAL_LAST_WRITE_UTC", out object oLastWriteUtc) && - oCreateTimeUtc is DateTime dtCreateTimeUtc && oLastWriteUtc is DateTime dtLastWriteUtc) + if (PreserverOriginalDates) { - args.FileService.SetCreationTimeUtc(dest, dtCreateTimeUtc); - args.FileService.SetLastWriteTimeUtc(dest, dtLastWriteUtc); + if (args.Variables.TryGetValue("ORIGINAL_CREATE_UTC", out object oCreateTimeUtc) && + args.Variables.TryGetValue("ORIGINAL_LAST_WRITE_UTC", out object oLastWriteUtc) && + oCreateTimeUtc is DateTime dtCreateTimeUtc && oLastWriteUtc is DateTime dtLastWriteUtc) + { + args.Logger?.ILog("Preserving dates"); + Helpers.FileHelper.SetLastWriteTime(dest, dtLastWriteUtc); + Helpers.FileHelper.SetCreationTime(dest, dtCreateTimeUtc); + } + else + { + args.Logger?.WLog("Preserve dates is on but failed to get original dates from variables"); + } } var srcDir = FileHelper.GetDirectory(AdditionalFilesFromOriginal diff --git a/BasicNodes/File/MoveFile.cs b/BasicNodes/File/MoveFile.cs index 092ae303..0d0e7aeb 100644 --- a/BasicNodes/File/MoveFile.cs +++ b/BasicNodes/File/MoveFile.cs @@ -85,7 +85,7 @@ public class MoveFile : Node var dest = GetDestinationPath(args, DestinationPath, DestinationFile, MoveFolder); if (dest == null) return -1; - + // store srcDir here before we move and the working file is altered var srcDir = FileHelper.GetDirectory(AdditionalFilesFromOriginal ? args.FileName : args.WorkingFile); string shortNameLookup = FileHelper.GetShortFileName(args.FileName); @@ -94,13 +94,21 @@ public class MoveFile : Node if (args.MoveFile(dest) == false) return -1; - - if(PreserverOriginalDates && args.Variables.TryGetValue("ORIGINAL_CREATE_UTC", out object oCreateTimeUtc) && - args.Variables.TryGetValue("ORIGINAL_LAST_WRITE_UTC", out object oLastWriteUtc) && - oCreateTimeUtc is DateTime dtCreateTimeUtc && oLastWriteUtc is DateTime dtLastWriteUtc) + + if (PreserverOriginalDates) { - Helpers.FileHelper.SetLastWriteTime(dest, dtLastWriteUtc); - Helpers.FileHelper.SetCreationTime(dest, dtCreateTimeUtc); + if (args.Variables.TryGetValue("ORIGINAL_CREATE_UTC", out object oCreateTimeUtc) && + args.Variables.TryGetValue("ORIGINAL_LAST_WRITE_UTC", out object oLastWriteUtc) && + oCreateTimeUtc is DateTime dtCreateTimeUtc && oLastWriteUtc is DateTime dtLastWriteUtc) + { + args.Logger?.ILog("Preserving dates"); + Helpers.FileHelper.SetLastWriteTime(dest, dtLastWriteUtc); + Helpers.FileHelper.SetCreationTime(dest, dtCreateTimeUtc); + } + else + { + args.Logger?.WLog("Preserve dates is on but failed to get original dates from variables"); + } } if(AdditionalFiles?.Any() == true)