none
Eliminar archivos en uso RRS feed

  • Pregunta

  • Hola.

    El codigo siguiente, lo que hace es, cargar una imagen png, redimensionarla, guardarla y abrirla en un PictureBox.

        Private Sub PictureBox1_Click() Handles PictureBox1.Click
            If Not Directory.Exists("Archivos") Then Directory.CreateDirectory("Archivos")
            If Not Directory.Exists("Archivos\Imagenes") Then Directory.CreateDirectory("Archivos\Imagenes")
            Label0.Text = Label0.Text + 1
            Label2.Text = "Archivos\Imagenes\ImageChanges" & Label0.Text & ".png"
            Dim myStream As Stream = Nothing
            Dim openFileDialog1 As New OpenFileDialog()
            openFileDialog1.InitialDirectory = (Environment.GetFolderPath(Environment.SpecialFolder.MyPictures))
            openFileDialog1.Filter = "|*.jpg||*.png||*.bmp||*.gif||*.jpeg||*.emf||*.dib||*.rle||*.bmz||*.wmf||*.gfa||*.emz||*.wmz||*.pcz||*.wpg"
            openFileDialog1.FilterIndex = 1
            openFileDialog1.RestoreDirectory = True
    
            If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                myStream = openFileDialog1.OpenFile()
                If (myStream IsNot Nothing) Then
                    Dim iWidth As Integer = Width
                    Dim iHeight As Integer = Height
                    PictureBox1.Height = iHeight
                    PictureBox1.Width = iWidth
                    Dim oImage As System.Drawing.Image
                    Dim oNewImage As System.Drawing.Image
                    oImage = Image.FromFile(openFileDialog1.FileName)
                    Dim bmp As Bitmap = New Bitmap(oImage)
                    oImage.Dispose()
                    oNewImage = bmp.GetThumbnailImage(140, 140, Nothing, IntPtr.Zero)
                    oNewImage.Save(Label2.Text, System.Drawing.Imaging.ImageFormat.Png)
                    PictureBox1.Image = Image.FromFile(Label2.Text)
                    PictureBox2.Image = Image.FromFile(Label2.Text)
                    Me.PictureBox1.Size = New System.Drawing.Size(44, 44)
                    Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
                    Form1_Load1()
                End If
                If (myStream IsNot Nothing) Then
                    myStream.Close()
                End If
            End If
        End Sub
    
        Private Sub Me_FormClosing() Handles Me.FormClosing
            Dim imgs As String = "Archivos\Imagenes"
            Dim allimgs As String() = Directory.GetFiles(imgs, "*.png")
            For Each imfls As String In allimgs
                File.Delete(imfls)
            Next
        End Sub

    Pero, al cerrar el formulario, trato de eliminar dichas imagenes ocasionandose un error porque los archivos estan en uso.

    ¿Como puedo cambiar el codigo para que se eliminen al cerrar el formulario?

    Muchas gracias.

    sábado, 21 de abril de 2012 14:09

Respuestas

  • hola

    par aque no se lockea la imagen podrias cargarla de esta forma

    Dim img As Image
    
    Using fs As New System.IO.FileStream("C:\nombreimagen.jpg", IO.FileMode.Open)
      img = Image.FromStream(fs)
    End Using
    
    PictureBox1.Image = img

    saludos




    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Rafael F M sábado, 21 de abril de 2012 14:24
    sábado, 21 de abril de 2012 14:20