
	<P>Synchronization can operate at file level, container level, or workarea level. 
	 <BR><BR><UL>  <LI>Synchronizing a single file results in the specified file being
	 uploaded or downloaded    (if the checking of its <A HREF="#CRCCalc">CRC</A> so
	 indicates). <BR>    <BR>  </LI>  <LI>Synchronizing a container synchronizes all
	 files in that container and any sub    containers, if recursion is specified. <BR>
		<BR>  </LI>  <LI>Synchronizing a workarea results in synchronization of all mapped
	 containers in that    workarea. </LI></UL><P>If a file has changed in both the repository
	 and the file system, then the synchronization process attempts to rename the file
	 system file to <filename>.KEEPand then downloads the repository copy. The repository
	 user must then decide which copy is required.</P><P>The synchronization process maintains
	 and compares the CRC values found in: <BR><BR><UL>  <LI>The repository <BR>    <BR>
	  </LI>  <LI>The .RVI file <BR>    <BR>  </LI>  <LI>The file system </LI></UL><P>and
	 either uploads or downloads depending on the results, as follows: <OL>  <LI>If the
	 repository and file system CRCs are the same, the file has not been changed, no
		action is taken with respect to the specific file, and if synchronization must
	 be    restarted, files that were found to be unchanged are not processed a second
	 time. <BR>    <BR>  </LI>  <LI>If they are different,  the .RVI CRC is compared.
	 <P>If the repository and .RVI CRCs are the same, this is taken to mean the file
	 system file has changed. If the file    system CRC and the .RVI CRC are the same,
	 this is taken to mean that the repository file    has changed. If all three CRCs
	 are different, both the file system file and the repository    file have changed.
	 In that case, the synchronization process:<OL>      <LI>Makes a copy of the file
	 system file. The name of the copy has an extension of '.keep'. </LI>      <LI>Refreshes
	 the file system file with the version in the repository. </LI>    </OL>  </LI></OL><P>Following
	 the first successful synchronize operation, further attempts at synchronization require
	 the .RVI file to be available. </P><P><STRONG>Note:</STRONG> Using upload or download
	 does not create or use a .RVI file. </P><P>To perform file synchronization, the
	 caller instantiates the FileService class, and calls its <A HREF="#cfs_synchronize">synchronize</A>
	 method. </P><H4>Deleting Removed Files During Synchronization</H4><P>During a synchronize
	 operation, files that have been 'removed' from the repository by deletion or by
	 exclusion from the workarea can also optionally be deleted from the filesystem.</P><P>For
	 this to occur, the file must have been synchronized at least once prior to being removed
	 from the repository, otherwise it is considered to be a new file (and uploaded accordingly).</P><P>If
	 you choose not to delete a 'removed' file from the file system, it continues to
	 be marked as a removed file (unless the repository file reappears as a result of
	 refreshing the workarea). To get the file to be uploaded to the repository again,
	 it must be explicitly uploaded. To process a number of removed files in this way,
	 upload a parent folder with the FS_RECURSE flag set and the FS_OVERWRITE flag unset
	 (that is, upload new files only). </P><P>Deletion of 'removed' folders is not currently
	 implemented. </P>
	