How can I tell which files are open on my machine?

This task isn't easy by any stretch of the imagination, but oddly enough it's an all too common one. A perfect example is when you want to rename or delete a file but you can't because a process has opened it. This problem is broken into two components: files that local processes have open and files that remote processes have open.

You can list the files that local processes have open with Sysinternals' Handle utility (http://www.sysinternals.com/ntw2k/freeware/handle.shtml). This free tool is invaluable in locating which process has a particular file open.

You can list the files that remote processes have open and force those files to close with the Perl scripts OpenFiles.pl and CloseFiles.pl, which you can download for free from Roth Consulting's Perl Script Repository (http://www.roth.net/perl/scripts). OpenFiles.pl displays on a server all files that have been opened from a different machine. CloseFiles.pl forces the specified files to close. Note that forcing files to close might lead to data loss; therefore, you should use CloseFiles.pl sparingly.