none
copiar elementos seleccionados de un OpenFileDialog RRS feed

  • Pregunta

  • Hola, necesito ayuda en esto:

    Tengo una aplicacion que entre sus funciones debe importar las imagenes que el usuario seleccione a una ruta, pero lo unico que he logrado es hacerlo con el primer elemento seseccionado, entonces decidí cambiar el codigo mientras corrijo esto.

    ¿Como hago esto?


    lunes, 4 de abril de 2016 5:13

Respuestas

  • Hola,

    Para obtener la carpeta de destino te recomiendo que uses en FolderBrowserDialog.

    > Mi Formulario :

    Primero debemos de seleccionar una ruta de destino, y lo asignamos en nuestro TextBox.

        Private Sub btnSeleccionarRuta_Click(sender As Object, e As EventArgs) Handles btnSeleccionarRuta.Click
    
            Using carpeta As New FolderBrowserDialog
    
                'Si seleccionó una carpeta
                If carpeta.ShowDialog = DialogResult.OK Then
    
                    'Obtenemos la ruta
                    txtRutaDestino.Text = carpeta.SelectedPath
    
                End If
    
            End Using
    
        End Sub

    Luego, seleccionamos las imágenes que vamos a enviar a la ruta seleccionada.

        Private Sub btnBuscarImagenes_Click(sender As Object, e As EventArgs) Handles btnBuscarImagenes.Click
    
            'Verificamos si la ruta no está vacío
            If txtRutaDestino.Text.Trim <> String.Empty Then
    
                Try
    
                    Using abrir As New OpenFileDialog
    
                        abrir.Filter = "Archivos de imágenes|*.png;*.jpg;*.gif;*.jpeg"
    
                        'Habilitamos seleccionar varios archivos
                        abrir.Multiselect = True
    
                        If abrir.ShowDialog = DialogResult.OK Then
    
                            For Each nombreArchivo In abrir.FileNames
    
                                'Hacemos una copia y la enviamos a la
                                'carpeta de destino
                                Dim archivoOrigen As String = nombreArchivo
    
                                Dim archivoDestino As String = Path.Combine(txtRutaDestino.Text, Path.GetFileName(nombreArchivo))
    
                                'Creamos una copia y la guardamos en el destino
                                File.Copy(archivoOrigen, archivoDestino, True)
                            Next
                        End If
    
                    End Using
                    MessageBox.Show("Las imágenes fueron enviadas a la carpeta de destino.")
    
    
                Catch ex As Exception
                    MessageBox.Show("Se produjo un error : " & ex.Message)
                End Try
    
            Else
                MessageBox.Show("Debe seleccionar una carpeta de destino.")
            End If
    
        End Sub

    En este caso creo una copia de la imagen seleccionada y la envío al destino, pero si quieres moverla al destino, usarías :

    File.Move(archivoOrigen, archivoDestino)

    Saludos.


    JC NaupaCrispín


    lunes, 4 de abril de 2016 16:43

Todas las respuestas

  • OpenFileDialog te permite seleccionar un solo fichero. Si quieres seleccionar varios debes usar otro método, por ejemplo un CheckedListBox:

     

    ' Debes importar System.IO

    Dim Carpeta As New DirectoryInfo("C:\") 

    For Each Fichero As FileInfo In Carpeta.GetFiles() 
        CheckedListBox1.Items.Add(Fichero.Name) 
    Next 

    Luego tendrás que recorrer los elementos seleccionado en el Listbox:

    Dim x As Integer
    Dim s As String = ""
    For x = 0 To CheckedListBox1.CheckedItems.Count - 1
        s = s & "Item " & (x + 1).ToString & " = " & CheckedListBox1.CheckedItems(x).ToString & ControlChars.CrLf
    Next x
    MsgBox(s)



    Saludos, Javier J

    lunes, 4 de abril de 2016 7:20
  • Hola,

    Para obtener la carpeta de destino te recomiendo que uses en FolderBrowserDialog.

    > Mi Formulario :

    Primero debemos de seleccionar una ruta de destino, y lo asignamos en nuestro TextBox.

        Private Sub btnSeleccionarRuta_Click(sender As Object, e As EventArgs) Handles btnSeleccionarRuta.Click
    
            Using carpeta As New FolderBrowserDialog
    
                'Si seleccionó una carpeta
                If carpeta.ShowDialog = DialogResult.OK Then
    
                    'Obtenemos la ruta
                    txtRutaDestino.Text = carpeta.SelectedPath
    
                End If
    
            End Using
    
        End Sub

    Luego, seleccionamos las imágenes que vamos a enviar a la ruta seleccionada.

        Private Sub btnBuscarImagenes_Click(sender As Object, e As EventArgs) Handles btnBuscarImagenes.Click
    
            'Verificamos si la ruta no está vacío
            If txtRutaDestino.Text.Trim <> String.Empty Then
    
                Try
    
                    Using abrir As New OpenFileDialog
    
                        abrir.Filter = "Archivos de imágenes|*.png;*.jpg;*.gif;*.jpeg"
    
                        'Habilitamos seleccionar varios archivos
                        abrir.Multiselect = True
    
                        If abrir.ShowDialog = DialogResult.OK Then
    
                            For Each nombreArchivo In abrir.FileNames
    
                                'Hacemos una copia y la enviamos a la
                                'carpeta de destino
                                Dim archivoOrigen As String = nombreArchivo
    
                                Dim archivoDestino As String = Path.Combine(txtRutaDestino.Text, Path.GetFileName(nombreArchivo))
    
                                'Creamos una copia y la guardamos en el destino
                                File.Copy(archivoOrigen, archivoDestino, True)
                            Next
                        End If
    
                    End Using
                    MessageBox.Show("Las imágenes fueron enviadas a la carpeta de destino.")
    
    
                Catch ex As Exception
                    MessageBox.Show("Se produjo un error : " & ex.Message)
                End Try
    
            Else
                MessageBox.Show("Debe seleccionar una carpeta de destino.")
            End If
    
        End Sub

    En este caso creo una copia de la imagen seleccionada y la envío al destino, pero si quieres moverla al destino, usarías :

    File.Move(archivoOrigen, archivoDestino)

    Saludos.


    JC NaupaCrispín


    lunes, 4 de abril de 2016 16:43