This plugin allows you to post process files using a powerful set of tasks.  You can move files, rename them, copy them, execute external programs, write text files, use date variables, multithread operations, copy to FTP/FTPS/SFTP servers, etc.

The source filter is on every task.  It will filter out items that don't match the source from being included in the current task item.  So you may want to apply certain actions to specific file types on a  per task basis.

MultiThreaded allows for tasks to run in parallel.  Be sure to add a Wait task to have things stop and wait for all the separate threads that a re running before allowing the entire job to complete.  This is useful to transfer a file to multiple external locations at the same time instead of sequentially.
----
!Find
The find task will scan a particular folder, or remote FTP, or SFTP server getting directory listings recursively up to the depth allowed.  These found items can then be used by future task items.

[attachments|find_task.png]
----
!Copy
The copy task will take a collection of files that were either "Found" using the Find task, or passed into the plugin through an event defined in the user manager.  The files in the list can be filtered down using the "Source filter" field to limit what you are copying.  An example might be *.txt.  The destination can reference the {path} to the original file.

So you may do: /Archive/{path}  or  /Archive/{parent_path}/{name}

The wait amount is how long to wait to verify the file is no longer being written to by some outside process.  The modified date, and file size are both compared.  It will wait put o the max amount of time before giving up and aborting the job.

If you want to work with the copied files, you can have them added intuit he list of files that are being processed for future tasks.  Be careful with this because if you do this, and then do a delete, both the original and copy would then be deleted.

[attachements|copy_task.png]
----
!Move
The move task is similar to the copy task but it will just move the file to the destination location.  If the move is across physical locations, it will copy, and then delete the source item to accomplish the move.

[attachments|move_task.png]
----
!Delete
The delete task will delete items that are in the list of files being worked with.  So this includes items from the "Find" task, or items passed to the plugin through an event.  It will keep attempting a delete for x seconds in the event the file is in use, or locked, etc.

[attachments|delete_task.png]
----
!Email
The email task can send customized emails out.  These emails could contain the custom form fields from an upload of a web browser, or information about the files being uploaded.  <LINE>{name}</LINE> can be used to repeat for each file item being listed.  Files can also be attached to the email message as well. (small files)

[attachments|email_task.png]
----
!Execute
This task allows for running an external process.  This can allow outside integration processes to be performed.  The output of these programs are fed into the log for this task to allow for monitoring of its results.  keep in mind in windows, running a bat file requires running cme.exe, and passing int he arguments for cmd.exe to execute the batch file.

[attachments|execute_task.png]
---
!Exclude
The list of items being processed is passed from task to task, growing when you use the Find task to add more.  The Exclude task allows you to remove these items from further processing.  once excluded, they are no longer referenced and future task steps will not process them in any way.  The source filter is used to find the items to exclude.  So excluding "*" would remove all items from the list.

[attachments|exclude_task.png]
----
!MakeDirectory
This allows you to create a new folder at the specified location.  During normal copy operations, directories are created as needed.

[attachments|makedirectory_task.png]
----
!Preview
This task will instantly pass in any found files to the [preview] worker inside of CrushFTP requesting for the files to have their thumbnails generates.  This is only useful if you are showing previews of image type files on the [WebInterface].

[attachments|preview_task.png]
----
!Rename
This task will rename a file in its current location to have a new name.

[attachments|rename_task.png]
----
!UserVariable
This allows you to make a variable that you will then reference in other future steps.  So you might make a "archive" variable, and then reference it in other steps as {archive} so that fi that changed, you would only need to change it in one location.

[attachments|uservariable_task.png]
----
!UnZip
This will unzip a file that is in the list.  Its suggested you filter down on *.zip to only get valid items in case of a mixed list of items.  The external unzip method will call the OS's unzip utility to unzip.  This will only work on OS X, or Linux / Unix based systems.  Otherwise the internal method will work too.

[attachments|unzip_task.png]
----
!Zip
This will take all items int eh list and zip them into a single file.  Its suggested to then do an Exclude task to them remove all items, and then go Find the single zip you just made if you want to do further processing.

[attachments|zip_task.png]
----
!Wait
This task will pause for the requested number of seconds before going to the next step.  You can also enable the wait for previous threads, and it will wait indefinitely until the prior MultiThreaded tasks have all completed.

[attachments|wait_task.png]
----
!WriteFile
This task will write to a log file, or xml file, or whatever you like, information about the files being processed.  One example is to create an RSS feed of incoming files.  The RSS configuration is pre-filled in the fields by default.  You can have the task find a specific piece of text starting from the beginning of the file, and then insert the new data there, or find a specific piece of text going from the end of the file, and then append data there.  If the file doesn't exist yet, the New File section will be written to the file before it performs the searches and updates to the file.

[attachments|writefile_task.png]
----
!Custom
This is a placeholder for custom tasks developers make in the future.