Principales respuestas
Eliminar un archivo para crear uno nuevo con el mismo nombre

Pregunta
-
Buenos Días!
Cargo una imagen en un picturebox1 contenido dentro del panel a capturar, el usuario la desplaza dentro del mismo para recortar la imagen, como si fuera una fotografía de DNI (de hay que el tamaño sea el panel), copio lo que es visible en el recuadro del panel en otro picturebox2 y a continuación debo guardar la imagen creada en este segundo picturebox en una archivo que debe tener el mismo nombre del que ya existe, para ello intento eliminar el archivo existente y me salta el siguiente error:
System.IO.IOException: El proceso no puede obtener acceso al archivo !C:\Support_AMF20\Pg38.jpg", porque está siendo utilizado en otro proceso"
La carpeta contenedora no tiene restricciones!.
A continuación cuelgo el fragmento de mi código, por si estoy haciendo algo mal
' Asignamos la imagen al PictureBox
picG.Image = bm
'
'Nombre del archivo y cierre del anterior
Dim Nomfile As String = ""
If ctrlP.Name = "Panel1" Then
'Logo página Superior
Nomfile = "Pg" & txCódigo.Text & ".jpg"
ElseIf ctrlP.Name = "Panel2" Then
'Logo página inferior
Nomfile = "Pq" & txCódigo.Text & ".jpg"
ElseIf ctrlP.Name = "Panel3" Then
'Logo portada
Nomfile = "Por" & txCódigo.Text & ".jpg"
End If
'
'si el nombre del archivo existe lo elimina (Imagen anterior)
If FilaExiste(rutaLogo & "\" & Nomfile) = True Then
Try
System.IO.File.Delete(rutaLogo & "\" & Nomfile) '-------------el error--------------------
Catch ex As Exception
MsgBox(ex.ToString)
Return
End Try
End If
'
'Guarda la nueva imagen en disco
picG.Image.Save(rutaLogo & Nomfile, ImageFormat.Jpeg)
Respuestas
-
No se ve dónde estás cargando el fichero. Haces esto:
picG.Image = bm
donde presumiblemente bm es un bitmap que antes has leído desde el fichero en algún otro sitio del programa. Esa es la parte del programa que hay que revisar. Posiblemente se te haya olvidado hacer "Dispose" del objeto que hayas usado para leer el fichero, y por eso el fichero está todavía en uso y no se puede borrar.
- Marcado como respuesta Angelnovato domingo, 26 de abril de 2020 15:26
Todas las respuestas
-
No se ve dónde estás cargando el fichero. Haces esto:
picG.Image = bm
donde presumiblemente bm es un bitmap que antes has leído desde el fichero en algún otro sitio del programa. Esa es la parte del programa que hay que revisar. Posiblemente se te haya olvidado hacer "Dispose" del objeto que hayas usado para leer el fichero, y por eso el fichero está todavía en uso y no se puede borrar.
- Marcado como respuesta Angelnovato domingo, 26 de abril de 2020 15:26
-
-
Hola Angelnovato
Gracias por levantar tu consulta en los foros de MSDN. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.
Siempre es un placer atender tus consultas!
Gracias por usar los foros de MSDN.
Oscar Navarro