May be too late to reply now, but may be helpful for others who search for the same scenario:
using System.Net.FtpClient;
public class FtpUpload
{
public void UploadFileToFtp
{
using (var ftpClient = new FtpClient())
{
var destPath = "MyDirectory"
var sourcePath = @"C:\Files to Upload\MyFile.zip";
ftpClient.Host = "ftp.schiffhauer.com";
ftpClient.Credentials = new NetworkCredential("chris", "letmein");
ftpClient.Connect();
using (var fileStream = File.OpenRead(sourcePath))
using (var ftpStream = ftpClient.OpenWrite(string.Format("{0}/{1}", destPath, Path.GetFileName(sourcePath))))
{
var buffer = new byte[8 * 1024];
int count;
while ((count = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ftpStream.Write(buffer, 0, count);
}
}
}
}
}
I have found that on here