ローカルでは、 File.Copy()だけを実行できます。それ以外の場合は、FTPを使用してアップロードする必要があります。
public void UpLoadFile(String serverFilePath, string localFilePath)
{
String serverFullPath = "ftp://" + s_ServerHost + serverFilePath;
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(serverFullPath);
ftp.Credentials = new NetworkCredential("user", "password");
ftp.KeepAlive = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
ftp.UseBinary = true;
using (FileStream fs = File.OpenRead(localFilePath))
{
Byte[] buffer = new Byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
}
using (Stream ftpStream = ftp.GetRequestStream())
ftpStream.Write(buffer, 0, buffer.Length);
}
それを取得するには、サーバーのIP/ホスト名とファイルの最終的なパブリックパスを知っている必要があります。