c# .net ftpwebresponse

c# - Código de estado del método FTPWebRequest.GetResponse()



.net ftpwebresponse (1)

Esto es un poco complicado.

Estoy subiendo archivos a FTP de forma asíncrona. Después de cargar cada archivo, estoy comprobando el estado de la operación de carga para ese archivo. Esto se puede hacer con la propiedad StatusCode del objeto FtpWebResponse para esa solicitud. El fragmento de código es el siguiente.

FileStream fs = File.Open(fileName, FileMode.Open); while ((iWork = fs.Read(buf, 0, buf.Length)) > 0) requestStream.Write(buf, 0, iWork); requestStream.Close(); FtpWebResponse wrRet = ((FtpWebResponse)state.Request.GetResponse());

Hay alrededor de 37 valores de StatusCode según msdn . No sé cuál de estos valores de código de estado garantizará que el archivo se cargue correctamente. Algunos de los que usé en mi código para verificar el éxito son:

wrRet.StatusCode == FtpStatusCode.CommandOK wrRet.StatusCode == FtpStatusCode.ClosingData wrRet.StatusCode == FtpStatusCode.ClosingControl wrRet.StatusCode == FtpStatusCode.ConnectionClosed wrRet.StatusCode == FtpStatusCode.FileActionOK wrRet.StatusCode == FtpStatusCode.FileStatus

Pero no me doy cuenta del resto. Necesito estar seguro de estos códigos porque, en función de la falla o el éxito de la operación de carga, debo realizar otras operaciones dependientes. Una condición incorrecta puede afectar el código restante. Otro pensamiento que cruzó mi mente fue simplemente poner el código anterior en un intento ... captar y no depender de estos códigos de estado. Con esto no dependería de los códigos de estado y suponiendo que cualquier falla siempre se dirija al bloque catch. Por favor déjame saber si esta es la manera correcta.


FtpStatusCode.ConnectionClosed es 426 que es Connection closed; transfer aborted Connection closed; transfer aborted por lo que creo que sería un fracaso en realidad. Cualquier cosa en el rango 2XX debería ser un éxito. Para los clientes FTP que he creado, el que solo recuerdo haber recibido para una carga exitosa es 226 - FtpStatusCode.ClosingData