none
Cargar la primera imagen de una carpeta en un PictureBox

    Pregunta

  • Deseo cargar una imagen que hay en una carpeta, bueno en realidad hay muchas, pero solo deseo la principal que da en el orden solo deseo alguna al azar, en realidad no se el nombre de la imagen solo deseo la representación de alguna imagen que contenga esa carpeta sin saber *.jpg .

     el código que utilizo es  

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            PictureBox1.Load("C:\Users\pc\Pictures\*.jpg")
    
        End Sub

    viernes, 23 de septiembre de 2016 6:27

Respuestas

  • No puedes cargar la imagen sin especificar el nombre del fichero. Lo que si puedes hacer es cargar el directorio y tomar el primer fichero:

    Dim Ficheros As String() = Directory.GetFiles("C:\Users\pc\Pictures\", "*.jpg")
    Dim FicheroNombre As String

    For Each FicheroNombre In Ficheros 
        If System.IO.File.Exists(FicheroNombre) Then

             PictureBox1.Load(FicheroNombre)

        End If
    Next

    Tienes que incluir un 

    Imports System.IO 


    Saludos, Javier J

    • Propuesto como respuesta RHCRD viernes, 23 de septiembre de 2016 14:22
    • Marcado como respuesta Carlos Herrera 20 viernes, 23 de septiembre de 2016 17:52
    viernes, 23 de septiembre de 2016 6:49

Todas las respuestas

  • No puedes cargar la imagen sin especificar el nombre del fichero. Lo que si puedes hacer es cargar el directorio y tomar el primer fichero:

    Dim Ficheros As String() = Directory.GetFiles("C:\Users\pc\Pictures\", "*.jpg")
    Dim FicheroNombre As String

    For Each FicheroNombre In Ficheros 
        If System.IO.File.Exists(FicheroNombre) Then

             PictureBox1.Load(FicheroNombre)

        End If
    Next

    Tienes que incluir un 

    Imports System.IO 


    Saludos, Javier J

    • Propuesto como respuesta RHCRD viernes, 23 de septiembre de 2016 14:22
    • Marcado como respuesta Carlos Herrera 20 viernes, 23 de septiembre de 2016 17:52
    viernes, 23 de septiembre de 2016 6:49
  • Carlos Herrera 20,

    Podrías apoyarte con LinQ para obtener el primer elemento de una colección:

    Dim firstImage As String = System.IO.Directory.GetFiles("C:\Users\pc\Pictures", "*.jpg").FirstOrDefault()
    If Not String.IsNullOrEmpty(firstImage) Then
            PictureBox1.Load(firstImage)
    Else
            MessageBox.Show("No se encontrarón archivos con extensión *.jpg")
    End If


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 23 de septiembre de 2016 14:13
  • Gracias por la ayuda, son aun novato y tengo un error al compilar 

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim firstImage As String = System.IO.Directory.GetFiles("C:\Users\pc\Pictures", "*.jpg").FirstOrDefault()
            If Not String.IsNullOrEmpty(firstImage) Then
                PictureBox1.Load(firstImage)
            Else
                MessageBox.Show("No se encontrarón archivos con extensión *.jpg")
            End If
        End Sub

    viernes, 23 de septiembre de 2016 16:39
  • Carlos Herrera 20,

    Si obtienes un error es preciso que proporciones el mensaje de la excepción y que instrucción la produce.

    viernes, 23 de septiembre de 2016 16:48
  • Hola Carlos Herrera 20,

    [-] ... pero solo deseo la principal que da en el orden solo deseo alguna al azar ...

    Decídete deseas obtener siempre la primera imagen o de todas la que existiese una aleatorioamente ?

    Además deberías usar Environment para obtener el Path de tu carpeta pictures.

     Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 23 de septiembre de 2016 17:05
  • Me ayudo muchas gracias, le agradezco el interés en ayudarme.
    viernes, 23 de septiembre de 2016 17:53