El proceso no puede acceder al archivo porque lo está usando otro proceso

Tengo un conjunto de informes nocturnos.

A veces tengo la excepción:

El proceso no puede acceder al archivo porque lo está usando otro proceso

¿Cómo puedo saber qué proceso está reteniendo el archivo? Estoy pensando que es McAfee, pero necesito demostrarlo.

El problema era que MailMessage en .NET estaba reteniendo los archivos adjuntos. Tuve que deshacerme del archivo adjunto y luego funcionó.

Use una herramienta como Process Explorer o Process Monitor .

Attachment data = new Attachment(@"c:\filename"); 'send email.... data.Dispose(); 

aquí algunas herramientas que dicen y desbloquean archivos bloqueados: http://ccollomb.free.fr/unlocker/

Confirmado. Tuve un problema similar e hice lo que dijo Greg.

En el bloque final después de enviar el mensaje, simplemente puse esto allí, y lanzó los manejadores de archivo:

 foreach(Attachment a in message.Attachments) a.Dispose(); 
  1. Process Explorer > Find> Find Handle> escriba su nombre de archivo.
  2. Desbloqueador Intenta abrirlo, si tiene un candado, se abrirá el deslocking y te mostrará los progtwigs que lo bloquean.

GC.Collect () después de que el disposer lo arregle

Estaba intentando iniciar un progtwig Java y recibí el mensaje. Al mirar en el Administrador de tareas, ya había una tarea Java ejecutándose (¿en bucle?) Cuando maté ese proceso, mi proceso pudo ejecutarse.

Acabo de tener el mismo problema, pero en mi caso estaba tratando de eliminar un archivo .mdf en Visul Studio 2012. No había mucha información sobre el error para ayudarme a resolver esto, así que vine aquí en busca de ayuda. Luego me di cuenta de que, aunque era un problema similar, era un proceso bastante diferente con el que tenía que lidiar.

Lo que hice fue tratar de eliminar el archivo .mdf en el explorador de Windows y luego me dio un error de que SQL Server 2008 R2 estaba de hecho aferrándome al archivo a pesar de que había borrado la base de datos. Una vez que estoy nuevo, todo lo que tuve que hacer fue apagar SQL Server 2008 R2 e intenté eliminar el archivo nuevamente y funcionó.

Si necesita instrucciones sobre cómo activar y desactivar SQL Server 2008 R2, consulte el siguiente enlace.

Activar y desactivar SQL Server

Filemon podría ser la herramienta que está buscando.

(o incluso Process Monitor que aparentemente ha reemplazado a FileMon).