If you have access to the source of the other application you can set it's file open to something like:
FileStream writer = new FileStream("C:\theFile", FileMode.Open, FileAccess.Write, FileShare.Read);
Then you can open the file using:
FileStream reader = new FileStream("C:\theFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Note that you can always try to open the file in read only mode, if you succeed also depends on how nice the initial user of the file is.
If this doesn't do it for you, you need to sort out who is holding the file. If you know that, you're one step closer to the solution.
you can use
Handle[
^] to find the application.
Depending on what you find you can take the appropriate action; if it turns out that your own applicaiton already has a handle to the file you might be just have multiple threads doing the same... really the same :).
Cheers, AT