Hola,
yo como lo hago en VB.Net es crear un fichero en el que meto la lo que quiero hacer con el ftp y en el siguiente orden:
NombreUsuario
Clave
CambioDeDirectorio (por si no quiero meter los ficheros en el raiz)
bin (Por si quieres subir ficheros en formato binario)
FicherosQueQuieroSubir
bye
Todos ellos separados por salto de linea
Luego llamo al ftp por medio del Shell de windows
ftp -s:nombre_del_fichero dir_servidor
Seguramente haya otra forma mas elegante de hacerlo, pero no yo no la se
Por cierto, una vez que acabe la transferencia, has de eliminar el archivo de configuracion, que no es plan de que quede por ahi todo el acceso
Espero te sirva de ayuda, ya comentaras si te valio o si encontraste una manera mas elegante