As it turns out you've effectively come up with the only solution to this problem.
There's a Microsoft KB article on this
http://support.microsoft.com/kb/q138621/ which also provides a neat wrapper function to test for already open files. However, as previously stated its semantically the same as the already proposed solution.
Maccas