Have a look at the WinSCP .NET Assembly. You can then run FTP or SFTP direct from VB.NET or C#.
Not how you want to use it but, I set up an SSIS wrapper around the assembly and deployed it as a generic SSIS package. I then call it when I need to in an SQL Agent Job step where I set the parameters according to the job at hand. We transfer 1000,s of files this way, it works like a charm.I must have about 15 jobs set up now that using it and adding more regularly.