Если я использую System.Net.FtpWebRequest
для загрузки файла на vsftpd сервер я должен использовать GetResponse, чтобы проверить, был ли файл загружен правильно? Или я получаю исключение для каждой ошибки? Что в System.Net.FtpWebResponse
я должен начать работу?
Да, вы хотите получить объект FTPWebResponse из объекта запроса ... вот так:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Method = WebRequestMethods.Ftp.UploadFile;
FtpWebResponse response = (FtpWebResponse) request.GetResponse();
request.KeepAlive = false;
byte[] fileraw = File.ReadAllBytes("CompleteLocalPath");
try
{
Stream reqStream = request.GetRequestStream();
reqStream.Write(fileraw, 0, fileraw.Length);
reqStream.Close();
}
catch (Exception e)
{
response = (FtpWebResponse) request.GetResponse();
// Do something with response.StatusCode
response.Close();
}
Вы захотите проверить Ftp.WebResponse.StatusCode.
В StatusCode довольно много членов, которые могут должны быть возвращены, поэтому проверка может быть сложной.
Вот список кодов / описаний, которые могут быть возвращены:
РЕДАКТИРОВАТЬ: Если что-то пойдет не так с передачей, он должен вызвать исключение при запуске до писателя потока. Что вы можете сделать, так это обернуть все это попыткой, и если что-то пойдет не так, вы сможете получить код состояния и распечатать его на любом носителе журнала, который вы используете, чтобы вы могли видеть, в чем конкретная проблема. Я изменил приведенный выше код, чтобы отразить все это (используя только один способ передачи, вы можете использовать свой собственный).