How do I delete a file which is locked by another process in C#?

c#, file-locking

Solution

Killing other processes is not a healthy thing to do. If your scenario involves something like uninstallation, you could use the `MoveFileEx` API function to mark the file for deletion upon next reboot.

If it appears that you really need to delete a file in use by another process, I'd recommend re-considering the actual problem before considering any solutions.

Problem

I'm looking for a way to delete a file which is locked by another process using C#. I suspect the method must be able to find which process is locking the file (perhaps by tracking the handles, although I'm not sure how to do this in C#) then close that process before being able to complete the file delete using `File.Delete()`.

Original source

Related problems