FSYNC - Program to Synchronize Windows Directories
Glenn Story
Version 11.0 -- 12/27/2002
Please send comments to Glenn Story at
glenn.story@gmail.com
Download the file from
here.
Introduction
FSync is a program designed to synchronize the files between two directories.
After FSync has synchronized a pair of directories, the files in the
two directories should be identical (except for files you
deliberately choose to skip, and files that, for security or other
reasons, can't be accessed).
FSync can synchronize the following types of directories:
- Directories on your local computer
- Directories on other computers that have been mapped to your local computer
- Directories on other computers by specifying UNC names.
- Directories on other Windows, Unix, or other machines that can be accessed via the FTP protocol.
How to Install FSync
How to Run FSync
How to Install FSync
Follow these steps to install FSync.
- Get a copy of
FSYNC.ZIP
.
- Unzip the file into a temporary directory, producing the
following files:
- FSYNC.EXE: The actual program.
- FSYNC.HTM: This document.
- FSYNC.REG: Information to update the registry
- WWWIN.EXE: A program that is used by FSync.
- MERGEWIN.EXE: A program used to support merging.
- *.GIF: Images that go with this document.
- SETUP.EXE: A program to install FSync and its components.
- SETUP.DAT: A data file read by SETUP.EXE.
- Run "SETUP" from the directory into which you have unzipped the files.
NOTE: If you are using WinZip, you can combine steps 2 and 3
by simply clicking "Install" from the WinZip wizard bar in standard
mode. In Wizard
Mode, WinZip can also perform these steps.
How to Run FSync
Starting FSync
Specifying Directories to Synchronize
The File List
FSync Actions
Editing the File List
Merging two files
FSync Options
Specifying Automatic Options
Excluding File Extensions
Excluding Directories
Automatic (unattended) Operation
Starting FSync
FSync can be run in one of five ways:
- From the explorer, double click on the FSync program's icon.
- From the command prompt, key in "fsync" and press return.
- From the explorer, double click on an FSync document's icon.
- From the command prompt, key in "fsync < file >" where <
file > is
the filename of an FSync document.
- From the command prompt, key in "fsync -q < file >" where <
file > is
the filename of an FSync document.
The first two methods will start an FSync session from which you can
start a new document, or open an existing one. The last three
methods will open an existing document.
In the last method, the "-q" stands for quick mode. FSync will
automatically do a
scan.
If the scan shows no files need to be updated, FSync will exit immediately.
The File List
FSync controls most of its actions from a file list. (An FSync
document stores this list for use from one session to the next.) You
build and update this list by selecting "Scan" or "Sync all files"
from the "Sync" menu.
Each entry in the file list contains the following items:
- The file name
- Timestamp and file-size information for copies of the file in
the two directories being synchronized.
- The next action to be taken to synchronize the files. The
action for a file can be set automatically by FSync whenever you
select "Scan" or "Sync all". You can also set this action manually
when you
edit the file list.
This action can be one of the following:
-
Copy File 1 to File 2
-
The file is to be copied from directory 1 to directory 2.
-
Copy file 2 to file 1
-
The file is to be copied from directory 2 to directory 1.
-
Delete file 1
-
The file is to be deleted from directory 1.
-
Delete file 2
-
The file is to be deleted from directory 2.
-
Merge files 1 and 2
-
The files in directory 1 and directory 2 are to be merged together.
(Normally, FSync
uses Mergewin to perform this merge. You may supply
an alternate mechanism for doing this merge as described under
Supplying a Merge Mechanism).
-
No action at this time
-
This action (if you can call it that) is selected whenever a
synchronization action has been carried out successfully. It is also
set for each file (except those marked to be skipped as described
next) whenever an existing FSync document is opened and a file list
is loaded from it.
-
Skip this file every time
-
You set this action manually for files that you don't want FSync to
try and synchronize. This is the only action that survives long
term: It is not changed by Scan or Sync operations and it is saved
to disk and restored when the FSync document is later re-opened.
This action is never set automatically by FSync; nor is it ever
changed automatically to something else.
Specifying Directories to Synchronize
You specify the directories to be synchronized using this dialog box:
You can specify each of the directories in one of the following formats:
Type of directory
|
Example syntax
|
Files on local and network drives
|
c:\some\dir
|
UNC names
|
\\somehost\some\dir
|
Files on an FTP server
|
ftp://hostname/some/dir (See note.)
|
Note: The full syntax for FTP directories is:
ftp://[user[:password]@]hostname[:port]/pathname
where "[" and "]" are metacharacters enclosing optional components.
Thus the following are all valid:
- ftp://hostname.com/path
- ftp://hostname.com:21/path
- ftp://gstory@hostname.com/path
- ftp://gstory@hostname.com:21/path
- ftp://gstory:secret@hostname.com/path
- ftp://gstory:secret@hostname.com:21/path
Warning:Although the last two forms (showing the password) are
valid, they are not recommended because the password will be shown on
the screen and stored in the clear in the FSync data file.
FSync Actions
This section describes the actions that FSync can take to synchronize
files. These actions can all be specified from items on the "Sync"
pull-down menu.
-
Scan
-
This function will scan all files in the two directories and compare
their states to the saved states in FSync's file list. It will set a
new action for each file as described in
The File List
above.
-
Edit File List
-
This will allow you to view and make changes to the File List and the
actions specified for individual files therein. This process is
described in more detail
below.
-
Sync from list
-
This function will synchronize each file in the file list based on
the file action set on the previous scan, or as set by you via the
edit function.
-
Sync all files
-
This function combines the actions of "scan" and "sync from list".
The files are scanned and compared to the file list, and then
immediately synchronized.
-
Sync one file
-
This function will allow you to synchronize one file. It will first
display a standard file dialog box for you to select a file. It
will then add the file to the list if it is not already there.
Next it will let you change the current action for the file, and
finally it will sync the file.
-
Set Directories
-
This function lets you respecify the directories to be synchrononized.
(Since this makes the contents of the file list questionable, you
should perform this action with caution.)
-
Show scan summary
-
Whenever you select "scan", a summary is displayed of the current
actions set for the files in the file list. If you would like to
display this information at some other time select this function.
Note that this will display the current information, not necessarily the
information at the last scan.
-
Stop scanning or syncing
-
This function will terminate the current scan or sync function.
Normally, FSync will stop what it is doing immediately and return to
a "ready" state. However, there are two situations where FSync will
request further information from you:
- While Scanning: You will be given the opportunity to consider
the current scan up to date (i.e. the information recorded for the
previous scan or sync is still up to date). You should use this
feature with caution. Only consider the current scan to be up to
date if you know with certainty that the files being scanned have not
changed; otherwise, your sync operation may omit files, or you may
get errors for attempting to access files that are no longer present.
- While copying a file: You will be give the option to terminate
the sync operation immediately or deferring the stop until copying the
current file is completed. You should normally select the latter so
as not to end up with an incomplete file at the destination location.
-
Reset all
-
This function will mark all files in the list as up to date without
actually moving any files. This is sometimes useful for creating a
new file list when files already exist (and have been manually
synchronized) between the two directories.
-
Options
-
This will bring up an options menu that lets you control various
parameters. See
FSync Options
for details.
-
Automatic Execution
This will bring up a dialog box to make execution of FSync more
automatic or even fully automatic. See
Specifying Automatic Options
for details.
-
Edit Extensions to skip
-
This will allow you to specify certain file extensions that you do
not want to synchronize. See
Excluding File Extensions
for details.
-
Edit Directoriesto skip
-
This will allow you to specify certain directories that you do
not want to synchronize. See
Excluding Directories
for details.
Editing the File List
When you ask to edit the file list you are presented with a dialog
box that displays all the files in the file list. You can select
individual files from this list and then perform one of the following
tasks:
- Edit an item. This brings up another dialog box with radio
buttons representing the various actions that can be set for the
file.
- Delete an item. This deletes the selected item from the list.
(If the corresponding files still exist, the item will be re-added
the next time you scan.)
- Sync an item. This will take the currently set synchronization
action for the selected file.
Supplying an Alternate Merge Mechanism
When FSync
determines that a file needs to be copied from one directory to
another, it can do that using built-in operating-system functions.
However, if both files have changed, you may want to merge the
changes in each file together. In such cases FSync can automatically
invoke MergeWin (as an Automation Object). However, you can
supply an alternate mechanism to do the merging if you prefer.
Whenever FSync wants to merge two files it displays a
dialog box.
If the file is determined to be either a text file or xBASE file, the
radio button, "merge the two files using internal merge" (meaning MergeWin)
will be set by default. For other types of files, this option is
not available.
For any type of file you can select "Merge the two files using
external program." You must specify the name of the program to be
run. A command line will ge generated of the following form:
command file1 file2
Thus, you must supply a command (program or batch file)
to accomplish this function. Your command should merge changes between
the two files, and replace both original files with the merged
version. (If you have a merge program you want to use but it doesn't
have the above-described behavior you can simply "wrap it" in a batch
file.)
FSync Options
You can set numerous FSync options by selecting "Options" from the
"Sync" menu. You will then see a dialog box such as the following:
General Options (Check boxes)
At the top of the options dialog box are three check boxes that
govern the overall synchronization operation. (Note that all options
are set and operated on independently for each FSync document.) All of
these options are initiazed to "not checked" for new FSync documents.
-
Include Subdirectories
-
If this box is checked then scanning and synchronizing will include
subdirectories of the specified directories. If this box is not
checked then only the specified directories will be scanned and
synchronized.
-
Allow Multiple Output Volumes
-
If this box is checked, then if files don't fit on the current output
disk a new disk will be used. This can be used, for example, to copy
files to diskettes, super-floppies, zip drives or Syquest drives.
This option was added so that I can use this program as a backup
program. It assumes most files will be moved from the first
directory to the second. If this box is not checked, then all files
from directory one must fit on the drive specified for directory two,
or else an error will occur.
-
Use these settings once, then revert to previous settings
-
If this box is checked, any other changes you make to the options
dialog box will only apply to the next sync operation. Then the
program will revert to the previous settings. (If you save
the FSync document before doing a sync operation, the previous
settings will be saved.) This option is used for cases, where, for
example you want to do a single sync, with the option "Make directory
2 look like directory 1" and thereafter do a normal sync operation.
If this box is not checked, then any changes you make in the options
dialog box will be made permanent when you click "OK".
File Manipulations (Radio buttons)
This section of the options dialog box lets you choose what actions
to take to synchronize your files. This section is divided into two
parts:
- Summary: This section lets you select a general type of
synchronization.
- Details: This section lets you examine and set the precise
action to occur for each situation encountered by FSync.
Summary
Each of the radio buttons in this section selects a general
synchronization strategy:
-
Synchronize the two directories
-
This option treats both directories as peers. Files are copied from either directory to the other to make the two
directories match. If the file has been changed in both locations,
you will be given a chance to
merge
the contents of the two files.
-
Make directory 1 look like directory 2
-
This option treats directory 2 as the "master" or "source" directory,
and will attempt to change directory 1 to match.
-
Make directory 2 look like directory 1
-
This option treats directory 1 as the "master" or "source" directory,
and will attempt to change directory 2 to match.
-
Custom
-
This option indicates that some non-standard set of detail options is
in effect. Normally you would not click on this button. (Doing so
does not change any settings.) FSync will automatically set this button when
you select a button in the "Details" section.
Any time you select a button in the "summary" section, FSync
automatically sets the buttons in the "details" section.
Thus, you can select various summary options and then examine the
detail settings to understand the effects of the summary option you select.
Details
Selecting buttons in this section lets you choose actions for each
particular circumstance that FSync encounters. This section consists
of a matrix of radio buttons. All of the buttons in a given row
relate to the condition of the files being synced. The columns
represent the choices of actions. Once you click on any button in
the "details" section, FSync will automatically set the "custom" button in the "summary" section.
Specifying Automatic Options
You can specify options for reducing the amount of user interaction
from the "Automatic Execution..." command on the Sync menu. (See
Automatic (Unattended) Operation for more information.)
From here you can specify three types of options.
Message Destinations
You can specify to send messages to dialog boxes or an ASCII log file
or both.
If you specify a log file, you can also specify the amount of detail
you want written to the file. Error messages are always written.
You can optionally also send information messages and/or successful
file actions (copy, etc.)
Handling Automatic Termination
When FSync is run with the -a command-line option it will generally
terminate automatically when the synchronization action is completed.
However if there were errors, you may want to have FSync stop
without exiting.
Response
There are a number of situations for which FSync prompts the user for
instructions. You can pre-specify these reponses.
Excluding File Extensions
FSync includes the ability to automatically set files with specified
extensions to
"Skip this file every time."
To examine or modify the list of file extensions to skip, select
"Edit file extensions to skip" from the "Sync" menu. You will then
see a dialog box like this:
From here you can select and delete extensions. Or you can select
the "Add" button which will display the following:
From this latter dialog box you can add a preset category of
extensions or individual extensions that you specify.
All extensions on the list that you specify will be set to be skipped
from synchronization. The check for these extensions is made when a
new file is encountered or (optionally) when you edit the list of
extensions. This gives you the ability to then edit the file list
and change the status of specific files even if they have an
excludible extension.
Excluding Directories
FSync also includes the ability to automatically skip specified
directories. Unlike skipping extensions (above) the files are not
marked as "skip this file every time". Rather they are simply not
To examine or modify the list of file directories to skip, select
"Edit directories to skip" from the "Sync" menu. You will then
see a dialog box similar to the "extensions to skip" dialog box shown
above.
From here you can select and delete directories. Or you can select
the "Add" button which will display a dialog box that lets you
specify a new directory to skip. This directory may be entered as a
relative directory (relative to the "to" and "from" directories. It
may also be entered as an absolute directory, which must specify a
directory below either the "to" or "from directory.
Automatic (Unattended) Operation
It is possible to run FSync so that it automatically scans and
synchronizes two directories without user intervention.