Overview
If you want to synchronise files in two directories, there are no system commands
available to copy only those files with a later date/time stamp from one directory
to another. This class enables you to create an object that can carry out the
following, depending on the options that you set at run time:
|
Property
|
Type
|
Meaning
|
FromFolder
|
String
|
Folder from which files are to be copied (source) |
ToFolder
|
String
|
Folder to which files are to be copied (destination) |
CopyIfMissing
|
Boolean
|
Copy the file from the source if there is no matching file in the destination.
If this is not set, then synchronisation applies only to files that are in
both the source and destination. |
OverwriteAll
|
Boolean
|
Copy from source to destination even if the destination file is more recent
than the source file |
DeleteEmptyFiles
|
Boolean
|
Deletes files from source and destination if the length of the source file
= 0 |
IncludeSubFolders
|
Boolean
|
Will recursively synchronise all sub-folders of the source folder |
CreateSubFolders
|
Boolean
|
If IncludeSubFolders is set, then setting this will automatically recursively
create all subfolders of the source folder in the destination, if not already
there, and copy files from source to destination folders. If this is not set,
only those subfolders that are present in both source and destination folders
are synchronized. |
ReportGrid
|
MSFlexGrid
|
If set to an MSFlexGrid control, then all the actions taken by the object
are reported in the grid as a list. |
IncludeNormalFiles
|
Boolean
|
Includes files that do not have the System attribute set |
IncludeSystemFiles
|
Boolean
|
Includes files with the system attribute |
IncludeHiddenFiles
|
Boolean
|
Includes files with the hidden attribute |
IncludeArchiveFilesOnly
|
Boolean
|
Only files with the Archive attribute set are included |
ClearArchiveFlag
|
Boolean
|
If set, the Archive attribute is reset on files in the From folder after
copying. |
Attributes
|
String
|
Sets the IncludeXXX flags above by using a string containing any combination
of the letters N, S, H and A. So using
.Attributes = "SH" is equivalent to setting .IncludeSystemFiles and .IncludeHiddenFiles and
resetting the others.
|
Usage and operation
To use this class include the syncDir.cls class source file in your project.
In your application code, create a variable of type SyncDir:
dim [WithEvents] FolderSync as SyncDir
The WithEvents option should be used if you want to trap the Action events
(see below).
Create a new object with:
set FolderSync = new SyncDir
The SyncDir class uses the SortedList.cls class, which you must also include
in your project.
Action events
When synchronising two folders, the class generates Action events that report
the actions taken while synchronising. This is useful for audit trailing.
_Action(ActionType As String, Msg As String)
Action type indicates what information is contained in the Msg:
|
Action Type
|
Msg
|
| CFG |
Configuration settings - designed for reading if printed line-by-line |
| FROM |
Path of From folder (top level) |
| TO |
Path of To folder (top level) |
| NEWSF |
Path of subfolder being created in the To folder. Will arise
only if createSubFolders option is set. |
| SUBF |
Path of subfolder being synchronised. Subsequent action messages
apply to files in this subfolder. Will arise only if IncludeSubFolders option
is set. |
| NEW |
Name of file being copied to TO folder, when no previous version
is there. |
| REPL |
Name of file being copied to TO folder, to replace previous
version |
| ERR |
Error message - applies to the preceding action line |
| SYS |
System message |