We inherited a system which included a workflow, build by an Adobe engineer, to import images from a shared folder on the Campaign server as xtk:fileRes. There's a fundamental problem with trying to do this within Campaign itself, that it's not possible (as far as I can see in the docs, and confirmed by someone from Adobe Support) to calculate the md5 hash of a file - and thus the xtk:fileRes record you end up with is not the same as that which would have been created by uploading the same image in the UI. We don't know what the consequences of this are, but it certainly has potential for things to break.
I ended up writing a .NET app through which images (along with their md5 hash!) can be uploaded to a custom SOAP endpoint, which then creates the xtk:fileRes records - see the github project. The treatment of folders could still do with a bit of work - it doesn't create folders, or change the folder if the image already exists in a different one. But it works for our purposes, and may work for yours; or at least give you some useful ideas.
When I am running this code I could see that the File object from which we are trying to create a File Resource, should be placed in a path in server("/usr/local/neolane/nl6/var/partners/"). I am unable to find any activity to copy/upload the file to server path. If this understanding is correct can you please mention any suggestion to upload a file/image from local drive to the server.