It’s frustrating when you are trying to delete a file but only get a warning message telling you that the file is in use and cannot be deleted, isn’t it? Turns out, Microsoft already has a command line built-in Windows that lets you quickly check to find out which process is holding up your file. It’s called OpenFiles and it’s been around since Windows Vista.
Turn on local file tracking
By default, OpenFiles only tracks the files opened by remote users through local shared folders. If you don’t have any local shared points, you see nothing.
You will need to enable the system global flag “maintain objects list” to see local opened files. Open an elevated Command Prompted window (Run as Administrator) and run this command.
OpenFiles /local on
Then restart your computer and you are all set.
How to use OpenFiles
Once rebooted, open an elevated Command Prompt window again and run the command. You will get the full list of files opened locally on your system. Since the list is going to be pretty long, you may want to export the outputs to a file.
OpenFiles > %userprofile%desktopfilelist.log
Or save them to the clipboard so it can be pasted later on to the notepad.
OpenFiles | Clip
You can even save the output in List or CSV formats if need.
OpenFiles /Query /FO CSV
What’s more useful is that you can combine the FileStr command to find exactly which process is locking up your file, such as below:
OpenFiles | FindStr /i document
Now you can terminate the process either through Task Manager or properly close out the application.
Alternatively, if you prefer a GUI based tool to help you to do the same, give Resource Monitor a try.
Open Resource Monitor from Task Manager’s Performance tab, switch over to CPU tab and type the file name in the search box on Associated Handles tab. I typed in “documents” in the search box, and here is what I got.