What is JFileSync?

JFileSync is used to synchronize pairs of directories. For instance, if you want to ensure that a certain set of files located on your workstation matches a corresponding set on your laptop or an external data drive.

In order to synchronize directories, you basically have to perform the three following steps:

  1. JFS  Define a synchronization profile including the directory pairs you would like to synchronize.
  2. JFS  Perform a comparison of all specified directory pairs in your synchronization profile. The results are presented in the center of the main window. The column labeled with A (for action) shows icons representing the actions that would have to be performed in order to synchronize the directories. That means, whether to copy a file or directory, delete it, or the user has to be asked in order to determine the right action (e.g., in case of inconsistent file lengths or time stamps).
  3. JFS   Start the synchronization of all specified directory pairs in your synchronization profile. A dialog appears showing all files and directories that will have to be copied (and deleted). After confirming the lists of copy and delete statements (or selecting a special subset of them), the synchronization will be performed accordingly.

You may save JFS and load JFS your specified synchronization profiles.

JFileSync provides several synchronization modes. The default setting uses the automatic mode that will use the history of synchronized files in order to determine whether a file should be copied or has to be deleted. However, you may also force JFileSync to create an exact copy of one file system ignoring whether a file on one side is newer than its corresponding file.

JFileSync provides several views on the presented list of analyzed files. Usually only files that have to be modified in some way (e.g., copied or deleted) are viewed. But you may also view all analyzed files or other certain sub-sets.

The complete JFileSync functionality can be controlled via the provided graphical user interface as well as the command line. If you are using JFileSync from the command line, several command line options are provided (also available when calling java -jar jfs.jar -help from a command shell). You may then perform synchronizations interactively using the build-in JFS shell or in a script-like manner using the -quiet option.

JFileSync also provides a couple of plug-ins which enhance the functionality with respect to time stamp correction (e.g., when having problems switching from winter to summer time) or detection of read-only files.

JFileSync is an open source project provided under the GNU General Public License. It is hosted on SourceForge: http://jfilesync.sourceforge.net.