An application independent method for monitoring file system requests made
by any application program, storing changes made to a first copy of a
selected file by the application program into a first file and
synchronizing the selected file, whether the file is open or closed, with
a second copy of the selected file. The monitoring and storing process is
repeated each time a file system request to write into the selected file
is made by the application program to track changes made to the selected
file. At the time of synchronization, if the selected file is closed, all
the changes that are stored in the first file are applied to a second copy
of the selected file. If, however, the selected file is open, a portion of
the changes are selected pursuant to a predetermined time period and
applied to a second copy of the selected file. As a result, both copies of
the selected files are identical, thereby synchronizing them. For open
files, both copies of the selected file are identical up to the
predetermined time period.