none
Bajar fichero a disco local desde la web en ejecucion RRS feed

  • Pregunta

  • Buenas tardes a todos,

    No hago mas que cambiar el código con todo lo que veo en la web y no doy con la forma de que funcione el código cuando ejecuto la web desde el servidor de internet.

    El proceso que quiero realizar es bajar un fichero de mi web a mi disco duro cuando estoy en ejecución. El código que tengo para ello es el que os pongo mas abajo.Os agradecería muchísimo que me pudierais ayudar.

    Sin mas y en espera de respuestas vuestras al respecto, recibid un cordial saludo.

    Miguel

     '**********************************************************
                '*** Bajamos el fichero de plantilla creado a disco local
                '**********************************************************
    
                Try
                    Dim ficherosCarpeta() As String = Directory.GetFiles("c:\mailketin\plantillas")
                    For Each ficheroActual As String In ficherosCarpeta
                        If ficheroActual = "c:\mailketin\plantillas\P1.html" Then
                            File.Delete(ficheroActual)
                        End If
                    Next
    
                    My.Computer.Network.DownloadFile("ftp://ftp.mio.net/Html/Plantillas/Nuevas/P1.html", "c:\mailketin\plantillas\P1.html", "usuario", "Clave")
                Catch ex As Exception
                    LblError.Visible = True
                    LblError.Text = ("Error al enviar correo a la cuenta en el If de FLAdjunto " & Dialogo & " " & ErrorFtp & " " & ruta)
                    Exit Sub
                End Try

    sábado, 25 de julio de 2015 18:15

Respuestas

  • hola este código no es muy optimo...

    Dim ficherosCarpeta() As String = Directory.GetFiles("c:\mailketin\plantillas")
                    For Each ficheroActual As String In ficherosCarpeta
                        If ficheroActual = "c:\mailketin\plantillas\P1.html" Then
                            File.Delete(ficheroActual)
                        End If
                    Next
    si únicamente quieres borrar el archivo P1.html realiza directamente el File.Delete("c:\mailketin\plantillas\P1.html"). Si el archivo NO existe NO se produce excepción alguna. Lo puedes verificar en https://msdn.microsoft.com/es-es/library/system.io.file.delete(v=vs.110).aspx


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    sábado, 25 de julio de 2015 19:03
    Moderador

Todas las respuestas

  • hola este código no es muy optimo...

    Dim ficherosCarpeta() As String = Directory.GetFiles("c:\mailketin\plantillas")
                    For Each ficheroActual As String In ficherosCarpeta
                        If ficheroActual = "c:\mailketin\plantillas\P1.html" Then
                            File.Delete(ficheroActual)
                        End If
                    Next
    si únicamente quieres borrar el archivo P1.html realiza directamente el File.Delete("c:\mailketin\plantillas\P1.html"). Si el archivo NO existe NO se produce excepción alguna. Lo puedes verificar en https://msdn.microsoft.com/es-es/library/system.io.file.delete(v=vs.110).aspx


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    sábado, 25 de julio de 2015 19:03
    Moderador
  • de todas formas. Qué es lo que no te funciona? Algún mensaje de error?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    sábado, 25 de julio de 2015 19:10
    Moderador
  • Hola Sergio, lo que deseo es borrar si existe el fichero en local y bajar el que esta en el FTP a disco local.

    El error que me da es que no encuentra el fichero en D:\.... SIENDO D:\... el directorio de red en el FTP y no el local.

    Espero me puedas indicar algún código mas optimo para ello.Un saludo y gracias

    sábado, 25 de julio de 2015 20:12
  • Hola.

    o sea que la unidad d: a la que haces referencia es ftp://ftp.mio.net/Html/Plantillas/Nuevas/P1.html/??

    estás seguro que ese archivo existe en dicha ruta?


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    sábado, 25 de julio de 2015 22:49
    Moderador
  • Si, si, el archivo existe en la ruta.

    El problema me lo da cuando quiero borrar el archivo. Me da el error siguiente:

    Could not find a part of the path 'C:\Mailketin\plantillas\P1.html'.

    La imagen muestra que el archivo existe:

    Y te pongo el código que tengo ahora.

    Un saludo

         '**********************************************************
                '*** Bajamos el fichero de plantilla creado a disco local
                '**********************************************************
                Try
                    If File.Exists("C:\Mailketin\plantillas\P1.html") Then
                        File.Delete("C:\Mailketin\plantillas\P1.html")
                    End If
                Catch ex As Exception
                    LblError.Visible = True
                    LblError.Text = ("Error al borrar el fichero en local  " & ex.Message)
                    Exit Sub
                End Try

    domingo, 26 de julio de 2015 10:29
  • Hola Sergio, no sé si tienes actualizado mi ultimo mensaje de respuesta...

    No sé si me puedes aclarar algo al respecto...

    He probado de todas las maneras para bajar el archivo y no hay forma, en localhost funciona correctamente todas las formas.

    Te adjunto la ultima que tengo como buena..

    Un saludo y gracias

     Public Shared Function DownloadFile(ByVal descFilePath As String, ByVal urlString As String) As Boolean
            Dim fileName As String = System.IO.Path.GetFileName(urlString)
            Dim descFilePathAndName As String = System.IO.Path.Combine(descFilePath, fileName)
            Try
                Dim myre As WebRequest = WebRequest.Create(urlString)
            Catch
                Return False
            End Try
            Try
                Dim fileData As Byte()
                Using client As New WebClient()
                    fileData = client.DownloadData(urlString)
                End Using
                Using fs As New FileStream(descFilePathAndName, FileMode.OpenOrCreate)
                    fs.Write(fileData, 0, fileData.Length)
                End Using
                Return True
            Catch ex As Exception
                Throw New Exception("download field", ex.InnerException)
            End Try
        End Function

    lunes, 27 de julio de 2015 9:32
  • hola

    pero si es FTP no deberias usar la clases

    FtpWebRequest (Clase)

    con este puedes indicar als credenciales y los comenados de download

    desde un ftp no se descarga usando la funcionalidad web porque el protoloco http no aplica para el ftp

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 27 de julio de 2015 12:23
  • Hola Leandro, he  probado muchas cosas.

    Te agradecería, si es posible me indicaras donde puedo ver algún ejemplo para probarlo y ver si me funciona.

    Un saludo y gracias

    lunes, 27 de julio de 2015 13:12