Recently, I was working on a solution which required a scheduled download of a hosted file. There are a few samples floating around online of how to do an FTP download/upload, but I figured I would share what I've been using as it is incredibly simple and does the job perfectly.
We utilize WebClient and NetworkCredential, so the System.Net namespace is required. Then, we just supply credentials and call either the DownloadFile() or UploadFile() method which require the source and destination folders - that's it! Below are examples of each.