none
FtpStatusCode No me funciona RRS feed

  • Pregunta

  • Buenas, me pasaron esta función por aquí, un miembro del foro, cuando la escribo con esta forma:

     (FtpStatusCode retunVal = Download("c:\\Camping/1/leerxml.txt", "ftp://acelerando.es/html/leerxml.txt", "usuario", "pass"); )

     me da un  error:  

    (la mejor coincidencia de método sobrecargado para Chris.principal.download(string,System.Uri,string,string) tiene unos argumentos no validos)

    public FtpStatusCode Download(string destinationFile, Uri downloadUri, string userName, string password)
            {

                try
                {

                    // Check if the URI is and FTP site

                    if (downloadUri.Scheme != Uri.UriSchemeFtp)
                    {

                        throw new ArgumentException("Invalid FTP site");

                    }

                    // Set up the request

                    FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(downloadUri);

                    // Credentials for FTP URI

                    ftpRequest.Credentials = new NetworkCredential(userName, password);

                    // Set method as file download.

                    ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;

                    // get the response object

                    FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();



                    Stream stream = null;

                    StreamReader reader = null;

                    StreamWriter writer = null;

                    // get the file as a stream from the response object and write it as a file stream to the local disk

                    try
                    {

                        stream = ftpResponse.GetResponseStream();

                        reader = new StreamReader(stream, Encoding.UTF8);

                        writer = new StreamWriter(destinationFile, false);

                        writer.Write(reader.ReadToEnd());

                        return ftpResponse.StatusCode;

                    }

                    finally
                    {

                        // Close streams

                        stream.Close();

                        reader.Close();

                        writer.Close();

                    }

                }

                catch (Exception ex)
                {

                    throw ex;

                }

            }

    Alguna consejo, ayuda, opinión,

    Muchas  gracias
    lunes, 9 de noviembre de 2009 9:48

Respuestas

  • Hola acelerando.

    Como dice el mensaje de error, tienes mal un parametro de entrada, en concreto el segundo parametro espera un objeto URI y tu le estas pasando un string, deberias hacer algo como esto:

    FtpStatusCode retunVal = Download("c:\\Camping/1/leerxml.txt", new Uri("ftp://acelerando.es/html/leerxml.txt"), "usuario", "pass");

    en el sugundo parametro se crea un objeto URI con la url que quieras pasarle.

    Saludos
    David González
    lunes, 9 de noviembre de 2009 10:33

Todas las respuestas

  • Hola acelerando.

    Como dice el mensaje de error, tienes mal un parametro de entrada, en concreto el segundo parametro espera un objeto URI y tu le estas pasando un string, deberias hacer algo como esto:

    FtpStatusCode retunVal = Download("c:\\Camping/1/leerxml.txt", new Uri("ftp://acelerando.es/html/leerxml.txt"), "usuario", "pass");

    en el sugundo parametro se crea un objeto URI con la url que quieras pasarle.

    Saludos
    David González
    lunes, 9 de noviembre de 2009 10:33
  • Muchas gracias, eso era, la función funciona perfectamente, problema resuelto.
    lunes, 9 de noviembre de 2009 11:05