m un principiante n el diseño de una aplicación de prueba de imagen se guardan en el disco duro y su nombre en la tabla de sql.
Soy capaz de ahorrar, navegar a través de los registros, pero no puede borrar la imagen.

me da un error
El proceso no tiene acceso al archivo ‘x’ porque está siendo utilizado por otro proceso, mientras que la eliminación de la imagen de

el código es el siguiente:

Private Sub btnDelete_Click(ByVal sender as System.Object, ByVal e as System.EventArgs) Handles btnDelete.Haga clic en
isProcName = «btnDelete_Click»
OBJ = New clsImageStoring

    Try
        Dim result As DialogResult = MessageBox.Show(Me, "Do you really want to delete this Record?", "Query", vbYesNo, vbQuestion)
        If result = Windows.Forms.DialogResult.Yes Then
            iiId = DGV.Rows(iiRowno).Cells(0).Value
            iiImageNo = DGV.Rows(iiRowno).Cells(1).Value
            Dim liTempImageNo As Int64 = 0
            If OBJ.Delete(iiId) Then
                Fillgrid()
                liTempImageNo = DGV.Rows(0).Cells(1).Value
                picEmp.Image.Dispose()

                picEmp.Image = Image.FromFile("D:\EmpImages\" & liTempImageNo & ".jpg")
                'File.Delete("D:\EmpImages\" & iiImageNo & ".jpg")
                FileIO.FileSystem.DeleteFile("D:\EmpImages\" & iiImageNo & ".jpg")
                MessageBox.Show(Me, "Record Deleted Successfully", "Information", vbOKOnly, vbInformation)
            End If
        End If

    Catch ex As Exception
        clsLog.WriteException(ex, isModuleName, isProcName)
    End Try
End Sub

He intentado deshacerse de la imagen y de la imagen de la caja de carga y otra de la imagen en el cuadro de imagen
también m no el uso de cualquier objeto de archivo para abrir el archivo excepto la Imagen de la clase De método de archivo.

cualquier ayuda será apreciada
Gracias


disponer no de trabajo. No es la eliminación de la imagen la imagen se mantiene, pero cuando traté de eliminar manualmente particular que la imagen que me mostró el error de que el archivo está siendo utilizado por «vshost.exe» que es mi propia aplicación. Así que he usado el Archivo de Corriente para cargar la imagen en el cuadro de imagen como han dicho por James pero aún así me dio error cuando he intentado borrar cualquier imagen con el siguiente código:

Archivo.Eliminar(«D:\EmpImages\» & iiImageNo & «.jpg»)
Archivo.Eliminar(«D:\EmpImages\» & iiImageNo & «.jpg»)

así que traté de este

Sistema de ficheros.Matar(«D:\EmpImages\» & iiImageNo & «.jpeg»)

y funcionó.
gracias james y a todos los que dieron allí un tiempo precioso para mí

Por favor, mostrar su guardar lógica como es posible que dejó abierto el archivo y por eso recibe este error.
no sé por qué esto está etiquetada con C#. todo vb.net código.

OriginalEl autor Pratik | 2013-06-20

3 Comentarios

  1. 5

    El cuadro de la imagen, probablemente, todavía no se ha publicado la imagen en el momento de intentar eliminarlo del disco, una más confiable sería cargar la imagen de un Stream por ejemplo,

    Using fs As New System.IO.FileStream("file path", IO.FileMode.Open, IO.FileAccess.Read)
        PictureBox1.Image = System.Drawing.Image.FromStream(fs)
    End Using

    Esto evitaría cualquier tipo de bloqueo en el archivo.

    Parece ser un problema común.

    Gracias James funciona. he desechado la imagen pero no funcionó, así que estoy usando la Imagen de la clase para cargar la imagen en el cuadro de imagen inicialmente y ahorro de la imagen, pero para cargar la imagen en el cuadro de imagen, mientras que la navegación m utilizando la ur parte de código. El único problema era que estaba dando el mismo error, mientras que la eliminación de Archivos’.Eliminar(«D:\EmpImages\» & iiImageNo & «.jpg») ‘FileIO.El sistema de ficheros.DeleteFile(«D:\EmpImages\» & iiImageNo & «.jpeg»), sino que se trabajó con el siguiente código de sistema de Ficheros.Matar(«D:\EmpImages\» & iiImageNo & «.jpeg»)
    Claramente la imagen todavía tiene un bloqueo en algún lugar, el código que he publicado no bloquear el archivo de abajo, así que sólo puedo asumir que usted es abrir el archivo en otro lugar y no se cierre correctamente.
    Pasé como dos horas tratando de matar los procesos y nada funcionó…encontré esta y la viola…pensé que me estaba tomando loco pastillas.

    OriginalEl autor James

  2. 6

    Esto se explica en la documentación de Imagen.FromFile:

    El archivo permanece bloqueado hasta que la Imagen se elimina.

    En la equidad, el OP está llamando picEmp.Image.Dispose() y también establece claramente que «he intentado deshacerse de la imagen y de cuadro de imagen«.
    Pero, por supuesto, que es la disposición de la de la imagen.
    Yep, así que claramente el OP entiende que la imagen se para ser eliminados antes de que se puede eliminar, el problema parece ser como el OP puede hacer precisamente eso – la vinculación a la documentación a reiterar que no ayuda.
    Uno de los puntos.

    OriginalEl autor Raymond Chen

  3. 2
    Dim xx as Image
    Using str As Stream = File.OpenRead(Fileloc)
    xx = Image.FromStream(str)
    End Using
    picturebox.Image = xx

    OriginalEl autor TOM

Dejar respuesta

Please enter your comment!
Please enter your name here