Your best option here is to use the CreateNew option when opening the file for writing.
There is simple no reliable way to check for the existence of a file on disk. The only thing you can check for is whether or not a file used to and may still exist on disk to which the process has at least a limited form of access.
Even if you gate all access to a file from your application, you cannot reliably prevent some other application from creating / deleting the file. Even with sufficient file system level locks, users can do nefarious things like take a USB key out of the computer.
The best way to approach this type of problem is to use open options like CreateNew. This will allow the operation to only succeed if the file is not in existence at the point in time the creation is attempted. You can catch the exception at this point and attempt to infer if it was from the file existing or some other invalid access exception.
Methods like File.Exist give a false sense of security to your code base and should be closely reviewed on check in.