using FileFlows.Plugin.Helpers; namespace FileFlows.FileDropPlugin.FlowElements; /// /// Moves a file to a new location /// public class MoveToUserFolder: Node { /// public override int Inputs => 1; /// public override int Outputs => 1; /// public override FlowElementType Type => FlowElementType.Process; /// public override string Icon => "fas fa-file-export"; /// public override string HelpUrl => "https://fileflows.com/docs/plugins/file-drop/move-to-user-folder"; /// public override string Group => "File Drop"; /// public override int Execute(NodeParameters args) { if (args.Variables.TryGetValue("FileDropUserOutputDir", out var oOutputDir) == false || string.IsNullOrWhiteSpace(oOutputDir as string)) return args.Fail("No user output directory in variables"); var outputDir = (string)oOutputDir; string filename = FileHelper.GetShortFileName(args.WorkingFile); var noExtension = FileHelper.GetShortFileNameWithoutExtension(args.WorkingFile); if(Guid.TryParse(noExtension, out _)) filename = FileHelper.GetShortFileNameWithoutExtension(args.LibraryFileName) + FileHelper.GetExtension(args.WorkingFile); string fullPath = Path.Combine(outputDir, filename); args.Logger?.ILog("Full Output Path: " + fullPath); var result = args.MoveFile(fullPath); if (result.Failed(out var error)) return args.Fail(error); return 1; } }