Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus

J’ai une série de rapports nocturnes.

Parfois, j’ai l’exception:

Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus

Comment puis-je savoir quel processus tient le fichier? Je pense que c’est McAfee, mais je dois le prouver.

Le problème était que MailMessage dans .NET conservait les pièces jointes. Je devais faire une disposition sur la pièce jointe et puis cela a fonctionné.

Utilisez un outil tel que Process Explorer ou Process Monitor .

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

voici quelques outil (s) qui indique et déverrouille les fichiers verrouillés: http://ccollomb.free.fr/unlocker/

Confirmé. J’ai eu un problème similaire et j’ai fait ce que Greg a dit.

finally , après avoir envoyé le message, je bloque ce message et le gestionnaire de fichiers a publié:

 foreach(Attachment a in message.Attachments) a.Dispose(); 
  1. Process Explorer > Rechercher> Rechercher un descripteur> tapez votre nom de fichier.
  2. Unlocker . Essayez de l’ouvrir, s’il est verrouillé, le programme de délocking s’ouvrira et vous montrera les programmes qui le verrouillent.

GC.Collect () après la disposition devrait résoudre ce problème

J’essayais de démarrer un programme Java et j’ai reçu le message. En regardant dans le Gestionnaire des tâches, il y avait déjà une tâche Java en cours d’exécution (en boucle?) Lorsque j’ai tué ce processus, mon processus était capable de s’exécuter.

Je viens d’avoir le même problème, mais dans mon cas, j’essayais de supprimer un fichier .mdf dans Visul Studio 2012. Il n’y avait pas beaucoup d’informations sur l’erreur donnée pour m’aider à résoudre ce problème et je suis donc venu chercher de l’aide. Ensuite, j’ai réalisé que même si c’était un problème similaire, c’était plutôt un processus différent que j’avais à traiter.

Ce que j’ai fait, c’est d’essayer de supprimer le fichier .mdf dans l’explorateur Windows, puis je me suis dit que SQL Server 2008 R2 tenait bien le fichier, même si la firebase database était effacée. Une fois que je savais cela, tout ce que je devais faire était d’arrêter SQL Server 2008 R2 et d’essayer de supprimer le fichier à nouveau et cela fonctionnait.

Si vous avez besoin d’instructions sur l’activation et la désactivation de SQL Server 2008 R2, voir le lien ci-dessous.

Activer et désactiver SQL Server

Filemon est peut-être l’outil que vous recherchez.

(ou même Process Monitor, qui a apparemment remplacé FileMon.)