none
Copiar archivos de dispositivos USB RRS feed

  • Pregunta

  • Buenas tardes. Estoy haciendo una aplicación en Visual Studio 2010 (Visual Basic NET) que me debe subir archivos de unidades USB a un FTP masivamente, y tengo este código:

    <<
        Sub CopiarArchivos()
            Try
                Dim unidades As DriveInfo() = DriveInfo.GetDrives

                For Each Dispositivo In unidades
                    If Dispositivo.DriveType = DriveType.Removable Then
                        For Each Archivos As String In Directory.GetFiles(Dispositivo.Name)
                            If Archivos.Length <> 0 Then
                                FormPral.txtDrv.Text = FormPral.txtDrv.Text & vbCrLf & Archivos.ToString() _
                                    & " ------> Archivo detectado" & vbCrLf
                                FormPral.txtArchivo.Text = Archivos.ToString


                                My.Computer.Network.UploadFile(Archivos.ToString(), dirFTP, usuario, contraseña, _
                                                               True, 500)
                                FormPral.txtDrv.Text = FormPral.txtDrv.Text & vbCrLf & Archivos.ToString
                            End If

                        Next
                    End If

                Next
                MsgBox("Procedimiento ejecutado", vbOKOnly, "Copiar USB")

            Catch
                FormPral.etqEstado.Text = "Ha ocurrido un error: " & Err.Description & vbCrLf & "Preparado..."
                Exit Sub
            End Try

        End Sub
        Sub SalirPrograma()

            SiNo = MsgBox("¡Salir del programa?", vbYesNo, "Mensaje del Sistema")
            If SiNo = 6 Then
                End
            Else
                FormPral.etqEstado.Text = FormPral.etqEstado.Text & vbCrLf & "Preparado"
                FormPral.btnCopiar.Focus()
                Exit Sub
            End If
        End Sub

    >>

    Y me devuelve un error: "UploadFile necesita un nombre de archivo". Estoy buscando pero no encuentro la causa. ¿Qué estoy haciendo mal? Muchas gracias de antemano.
    martes, 21 de junio de 2016 11:43

Respuestas

  • La ruta de destino debe contener la ruta completa incluido el nombre del fichero. Estás pondiendo disFTP que creo que solo será la ruta de la carpeta.

    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:24
    martes, 21 de junio de 2016 12:23
  • No se como estás montando la ruta.

    Pon un punto de interrupción en la instrucción UploadFile y mira que ruta remota estás dando.


    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 6:52
  • Hola, Javier.  Creo que voy a ser asiduo a este  foro, porque es el mejor......... y lo que hay por ahí  fuera.........  ¡hay que echarle!

      A ver, lo que estoy mandando es "ft//ftp.strato.com/p1.txt". Este fichero está en un  pendrive permanentemente conectado a mi torre. Y el nombre lo obtengo recorriendo un string inversamente hasta que aparezca la "\"ñ.  Acto seguido, añado el string generado a la dirección de salida.


    www.titoct200.com

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 11:15
  • Hola, Javier.  Creo que voy a ser asiduo a este  foro, porque es el mejor......... y lo que hay por ahí  fuera.........  ¡hay que echarle!

      A ver, lo que estoy mandando es "ft//ftp.strato.com/p1.txt". Este fichero está en un  pendrive permanentemente conectado a mi torre. Y el nombre lo obtengo recorriendo un string inversamente hasta que aparezca la "\"ñ.  Acto seguido, añado el string generado a la dirección de salida.


    www.titoct200.com


    Porque otra forma o hay, ¿no?  Se tiene que hacer archivo a archivo, ¿no?

    www.titoct200.com

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 11:19
  • La ruta no está bien. Debe ser del tipo

    ftp://ftp.strato.com/p1.txt


    Saludos, Javier J

    • Propuesto como respuesta Javier Jiménez miércoles, 22 de junio de 2016 15:04
    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 12:25
  • Si, recorres los archivos y los subes.

    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 12:26
  • No olvides marcar las respuestas para dar el tema por cerrado.


    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:26
    miércoles, 22 de junio de 2016 15:04

Todas las respuestas

  • La ruta de destino debe contener la ruta completa incluido el nombre del fichero. Estás pondiendo disFTP que creo que solo será la ruta de la carpeta.

    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:24
    martes, 21 de junio de 2016 12:23
  • Muuchas gracias, Javiier. He añadido el nombre de archivo, y ahora me dice que "... no es una dirección de archivo remoto válida...."  Te  pongo el código que he añwadido:

    <<

    for i = NombreArchivo.Length - 1 To 0 Step -1
                                    If NombreArchivo(i) <> "\" Then
                                        Fichero = NombreArchivo(i) & Fichero
                                        FormPral.txtArchivo.Text = FormPral.txtArchivo.Text & ", " & Fichero
                                    Else
                                        Exit For
                                    End If
    Nex

    >>

      Y en la instrucción de subida al FTP, en la url  le añado una "\" y 'Fichero'


    www.titoct200.com



    • Editado Titoct200 martes, 21 de junio de 2016 20:11
    martes, 21 de junio de 2016 20:09
  • No se como estás montando la ruta.

    Pon un punto de interrupción en la instrucción UploadFile y mira que ruta remota estás dando.


    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 6:52
  • Hola, Javier.  Creo que voy a ser asiduo a este  foro, porque es el mejor......... y lo que hay por ahí  fuera.........  ¡hay que echarle!

      A ver, lo que estoy mandando es "ft//ftp.strato.com/p1.txt". Este fichero está en un  pendrive permanentemente conectado a mi torre. Y el nombre lo obtengo recorriendo un string inversamente hasta que aparezca la "\"ñ.  Acto seguido, añado el string generado a la dirección de salida.


    www.titoct200.com

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 11:15
  • Hola, Javier.  Creo que voy a ser asiduo a este  foro, porque es el mejor......... y lo que hay por ahí  fuera.........  ¡hay que echarle!

      A ver, lo que estoy mandando es "ft//ftp.strato.com/p1.txt". Este fichero está en un  pendrive permanentemente conectado a mi torre. Y el nombre lo obtengo recorriendo un string inversamente hasta que aparezca la "\"ñ.  Acto seguido, añado el string generado a la dirección de salida.


    www.titoct200.com


    Porque otra forma o hay, ¿no?  Se tiene que hacer archivo a archivo, ¿no?

    www.titoct200.com

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 11:19
  • La ruta no está bien. Debe ser del tipo

    ftp://ftp.strato.com/p1.txt


    Saludos, Javier J

    • Propuesto como respuesta Javier Jiménez miércoles, 22 de junio de 2016 15:04
    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 12:25
  • Si, recorres los archivos y los subes.

    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:25
    miércoles, 22 de junio de 2016 12:26
  • La ruta no está bien. Debe ser del tipo

    ftp://ftp.strato.com/p1.txt


    Saludos, Javier J


      Ahhhhhhh, con las barras contrarias. Vaaaale vale. Probare

    www.titoct200.com

    miércoles, 22 de junio de 2016 12:29
  • ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CONSEGUIDO!!!!!!!!!!!!!!!!! Muuuuuuuuuuuuuuchas gracias!!!!!!!!!!!!!!!!!!!!!!!!

    www.titoct200.com

    miércoles, 22 de junio de 2016 12:36
  • No olvides marcar las respuestas para dar el tema por cerrado.


    Saludos, Javier J

    • Marcado como respuesta Titoct200 miércoles, 22 de junio de 2016 15:26
    miércoles, 22 de junio de 2016 15:04