If you want to synchronize access, the best approach is to do a client/server architecture. The client thus never access directly the files.
Client server model (Wikipedia)[
^]
Otherwise access to a file is very similar to local access from multiple programs. If one program open a file in read/write mode, typically other program won't be able to open a file with that access.
Access from multiples computer might works for files are are seldom used and not opened uselessly. It won't scale well if a lot of application works with the same files.
Also, if you cannot open a file because it is used by another computer, you would have to retry latter...