Это кажется тривиальной проблемой, но мой веб-поиск ответа (даже на этом сайте) заставил меня задать вопрос в явном виде.
Я загружаю файл через FTP со своего сервера на серверудаленный сервер.Мой код выглядит следующим образом ...
public void Upload(string fileToUpload)
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.remoteserver.com/Data/" + fileToUpload);
request.UsePassive = false;
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential ("username","password");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader(fileToUpload);
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
}
Все это кажется очень простым.У меня проблема в том, что я получаю ошибку 550, когда файл еще не существует на удаленном сервере.Я бы предположил, что если файл не существует, то файл будет создан.Кроме того, я предполагаю, что если это произойдет, он будет перезаписан.
Поскольку это не так (по крайней мере, при записи нового файла), я бы также предположил, что я должен (а) каким-то образом проверить наличиесначала файл, и (б) создайте его, если он не существует.Но как это сделать?
Спасибо,
Майк