none
copiar imagen al seleccionar en open file dialog vb.net RRS feed

  • Pregunta

  • Buen día.

    En mi proyecto tengo un open file dialog donde selecciono la imagen a cargar. hasta ahi todo lo mas bien

    Lo que se me ocurrio es que al seleccionar la imagen me la copie a la ruta de mi proyecto para que siempre se pueda cargar y no me diga q la imagen no existe ya que la ruta la guarda en la base de datos.

    Alguna idea de como poder hacer esta idea xD

    martes, 4 de octubre de 2011 11:56

Respuestas

  • hola

    podria ser algo como esto

    Dim openFileDialog1 As New OpenFileDialog()
    
    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    
    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    
    	Dim destino As String = Path.Combine(Application.StartupPath, String.Format("Archivos\", Path.GetFileName(openFileDialog1.FileName)))
    	File.Copy(openFileDialog1.FileName, destino)
    	
    End If
    


    recuerda agregar el

    Imports System.IO

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta 10Gox martes, 4 de octubre de 2011 12:33
    martes, 4 de octubre de 2011 12:14
  • Hola 10Gox,

    Puedes hacer un imports del system.io y utilizar el método file.copy, la ruta de tu aplicación será Application.ExecutablePath

     

    Imports System.IO
    Public Class Form1

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     File.Copy("", Application.ExecutablePath)
     End Sub
    End Class

     

    Saludos,


    Mariano Llarin.-
    • Marcado como respuesta 10Gox martes, 4 de octubre de 2011 12:33
    martes, 4 de octubre de 2011 12:14

Todas las respuestas

  • hola

    podria ser algo como esto

    Dim openFileDialog1 As New OpenFileDialog()
    
    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    
    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    
    	Dim destino As String = Path.Combine(Application.StartupPath, String.Format("Archivos\", Path.GetFileName(openFileDialog1.FileName)))
    	File.Copy(openFileDialog1.FileName, destino)
    	
    End If
    


    recuerda agregar el

    Imports System.IO

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta 10Gox martes, 4 de octubre de 2011 12:33
    martes, 4 de octubre de 2011 12:14
  • Hola 10Gox,

    Puedes hacer un imports del system.io y utilizar el método file.copy, la ruta de tu aplicación será Application.ExecutablePath

     

    Imports System.IO
    Public Class Form1

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     File.Copy("", Application.ExecutablePath)
     End Sub
    End Class

     

    Saludos,


    Mariano Llarin.-
    • Marcado como respuesta 10Gox martes, 4 de octubre de 2011 12:33
    martes, 4 de octubre de 2011 12:14
  • Aclaro por las dudas que el primer parámetro de la función debería ser la ruta de origen de la imagen.

     

    Saludos,


    Mariano Llarin.-
    martes, 4 de octubre de 2011 12:15
  • el primer parámetro de la función debería ser la ruta de origen de la imagen.

    claro, por eso

    File.Copy(openFileDialog1.FileName, destino)


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 4 de octubre de 2011 12:20
  • hola

    he estado probando y me tira el siguiente error:

    no se puede encontrar una parte de la ruta de acceso 'D:\Mis Documentos\Utu\3BD\Programacion\Tercera Entrega\S.I.G.LO\S.I.G.LO\bin\debug\Usuarios\'.

    tengo este codigo

      Dim destino As String = Application.StartupPath & "\Usuarios\"
    
     If Directory.Exists(Application.StartupPath & "\Usuarios") = True Then
    
                        File.Copy(Globals.ImagenUsuario, destino)
                    Else
                        Directory.CreateDirectory(Application.StartupPath & "\Usuarios")
                        File.Copy(Globals.ImagenUsuario, destino)
                    End If
    

    la variable Globals.ImagenUsuario toma la ruta de la imagen osea el filename del openfiledialog

    martes, 4 de octubre de 2011 13:30
  • Creo que el error esta en que pones la barra invertida al concatenar el nombre de tu carpeta

     

     Dim destino As String = Application.StartupPath & "\Usuarios\"
    

    dejalo asi

     Dim destino As String = Application.StartupPath & "\Usuarios"
    
     

    miércoles, 23 de noviembre de 2011 1:01
  • Hola Leandro quisiera que me des una ayudita, me tira este error cuando trato de guardar la imagen. Resulta que yo quiero grabar/copiar la imagen en una carpeta de mi proyecto llamada resources y la ruta grabarla en un campo de una base de datos VB.net. Saludos cordiales
    • Propuesto como respuesta Anthony Paz miércoles, 16 de mayo de 2012 16:00
    • Votado como útil Anthony Paz miércoles, 16 de mayo de 2012 16:00
    martes, 15 de mayo de 2012 21:38
  • Lo solucione así:

    Dim openFileDialog1 As New OpenFileDialog()
            openFileDialog1.InitialDirectory = "C:\Documents and Settings\Equipo\Mis documentos\Mis imágenes"
            openFileDialog1.Filter = "jpg files (*.jpg)|*.jpg|Bitmap Files (*)|*.bmp;*.gif;*.jpg|All files (*.*)|*.*"
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                If Not Directory.Exists(Application.StartupPath.ToString + "\..\..\Imagenes") Then
                    'Crea la carpeta
                    Directory.CreateDirectory(Application.StartupPath.ToString + "\..\..\Imagenes")
                    Dim ruta As String = Path.Combine(Application.StartupPath.ToString & "\..\..\Imagenes", Path.GetFileName(openFileDialog1.FileName))
                    If Not File.Exists(ruta) Then
                        txtRutaImagen.Text = Path.GetFileName(openFileDialog1.FileName) ' Obtengo el nombre del archivo
                        File.Copy(openFileDialog1.FileName, ruta) 
                        PictureBox2.ImageLocation = ruta 'Esta es la ruta de mi directorio en mi aplicacion
                    Else
                        MsgBox("La imagen que eligió ya existe, elija otra imagen por favor.")
                        PictureBox2.ImageLocation = "" 'Limpia el picturebox
                        Exit Sub 'obligo a que se salga
                    End If
                Else
                    Dim ruta As String = Path.Combine(Application.StartupPath.ToString & "\..\..\Imagenes", Path.GetFileName(openFileDialog1.FileName))
                    If Not File.Exists(ruta) Then
                        txtRutaImagen.Text = Path.GetFileName(openFileDialog1.FileName) ' Obtengo el nombre del archivo
                        File.Copy(openFileDialog1.FileName, ruta)
                        PictureBox2.ImageLocation = ruta 'Esta es la ruta de mi directorio en mi aplicacion
                    Else
                        MsgBox("La imagen que eligió ya existe, elija otra imagen por favor.")
                        PictureBox2.ImageLocation = "" 'Limpia el picturebox
                        Exit Sub 'obligo a que se salga
                    End If
                End If
            End If

    • Propuesto como respuesta Anthony Paz viernes, 8 de junio de 2012 14:42
    miércoles, 16 de mayo de 2012 16:02
  • pregunta 

    presento un error muy similar a el de usd la ruta donde deseo copiar la imagen es la siguiente

    C:\Users\LuisAngel\Documents\Visual Studio 2010\Projects\sistemaInventarioCTP\sistemaInventarioCTP\fotos

    mi código es este

    Dim destino As String = Path.Combine(Application.StartupPath, String.Format("~\fotos", Path.GetFileName(txtImagen.Text)))
                File.Copy(txtImagen.Text, destino)

    txtimagen es en donde copio la ruta de la imagen



    Puru vida se les agradece Saludos Luis Ángel

    lunes, 6 de mayo de 2013 18:01
  • gracias si funciona pero muchas gracias
    domingo, 24 de noviembre de 2013 23:04
  • Lo solucione así:

    Dim openFileDialog1 As New OpenFileDialog()
            openFileDialog1.InitialDirectory = "C:\Documents and Settings\Equipo\Mis documentos\Mis imágenes"
            openFileDialog1.Filter = "jpg files (*.jpg)|*.jpg|Bitmap Files (*)|*.bmp;*.gif;*.jpg|All files (*.*)|*.*"
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                If Not Directory.Exists(Application.StartupPath.ToString + "\..\..\Imagenes") Then
                    'Crea la carpeta
                    Directory.CreateDirectory(Application.StartupPath.ToString + "\..\..\Imagenes")
                    Dim ruta As String = Path.Combine(Application.StartupPath.ToString & "\..\..\Imagenes", Path.GetFileName(openFileDialog1.FileName))
                    If Not File.Exists(ruta) Then
                        txtRutaImagen.Text = Path.GetFileName(openFileDialog1.FileName) ' Obtengo el nombre del archivo
                        File.Copy(openFileDialog1.FileName, ruta) 
                        PictureBox2.ImageLocation = ruta 'Esta es la ruta de mi directorio en mi aplicacion
                    Else
                        MsgBox("La imagen que eligió ya existe, elija otra imagen por favor.")
                        PictureBox2.ImageLocation = "" 'Limpia el picturebox
                        Exit Sub 'obligo a que se salga
                    End If
                Else
                    Dim ruta As String = Path.Combine(Application.StartupPath.ToString & "\..\..\Imagenes", Path.GetFileName(openFileDialog1.FileName))
                    If Not File.Exists(ruta) Then
                        txtRutaImagen.Text = Path.GetFileName(openFileDialog1.FileName) ' Obtengo el nombre del archivo
                        File.Copy(openFileDialog1.FileName, ruta)
                        PictureBox2.ImageLocation = ruta 'Esta es la ruta de mi directorio en mi aplicacion
                    Else
                        MsgBox("La imagen que eligió ya existe, elija otra imagen por favor.")
                        PictureBox2.ImageLocation = "" 'Limpia el picturebox
                        Exit Sub 'obligo a que se salga
                    End If
                End If
            End If

    Gracias por el código, probado y funcionando correctamente en C#
    viernes, 3 de marzo de 2017 16:23