subcarpetas - eliminar carpeta windows
Eliminar un archivo en uso en tiempo de ejecuciĆ³n (4)
No creo que sea posible. En Windows, no puede eliminar un archivo que tenga controladores abiertos. http://support.microsoft.com/kb/320081
Sin embargo, de su descripción no necesita mantener el archivo abierto en su aplicación. Abra el archivo, lea la imagen y luego cierre el archivo. Luego, el archivo se puede eliminar, pero la aplicación aún tendrá los datos de la imagen.
Cómo eliminar un archivo que está en uso / abierto por algún proceso en tiempo de ejecución. Estoy utilizando vb.net para mi proyecto y una imagen se muestra en cuadro de imagen, y eso debe eliminarse, sin cerrar ese archivo.
Si el archivo es abierto por otro proceso en modo exclusivo, no puede - Windows no lo permite. En ese caso, lo mejor que puede hacer es esperar al otro proceso para cerrar el archivo y luego eliminarlo, o hacer que se elimine en el próximo reinicio utilizando MoveFileEx()
con el indicador MOVEFILE_DELAY_UNTIL_REBOOT
y una ubicación de destino de NULL
.
Si otro proceso abre el archivo de forma no exclusiva, puede llamar a DeleteFile()
normalmente (suponiendo que tenga permiso para hacerlo). El archivo permanecerá mientras el otro proceso lo tenga abierto, pero se eliminará tan pronto como el otro proceso lo cierre.
(Y sí, me doy cuenta de que esos enlaces son para Win32 C API, las mismas funciones deberían estar disponibles en VB .NET)
Puede cerrar el proceso, luego eliminarlo o eliminarlo al reiniciar. Utilice las sugerencias anteriores para obtener información sobre el uso de MoveFileEx () con Windows.
Para cerrar un proceso, puede hacer lo siguiente:
For Each proc As Process In System.Diagnostics.Process.GetProcessesByName("process name here")
proc.Kill()
Next
Consulte eliminar archivos bloqueados , Superar "Lo está utilizando otra persona o programa", entre otros.