/FolderSyncNet

Folder synchroniser: Automatically copies updated files from source folder to destination folder for backup purposes. Provides also automatic generation of version history of old file versions.

Primary LanguageC#GNU Lesser General Public License v2.1LGPL-2.1

Folder synchroniser with file history functionality

Automatically and in realtime copies updated files from source folder to destination folder for backup purposes. It is also possible to turn on bi-directional synchronisation, and/or automatic generation of version history of old file versions.

State

Ready to use. Maintained and in active use.

Example configuration illustrating the capabilities of the software:

{
	"Files": {
		"SrcPath": "C:\\yourpath\\yourproject\\",
		"SrcPathMinFreeSpace": 0,

		"RetryCountOnEmptyDirlist": 0,
		"RetryCountOnSrcFileOpenError": 5,
		"FSOperationTimeout": 3600,
		"DirListOperationTimeout": 3600,
		"FileBufferWriteTimeout": 3600,
		"FileBufferReadTimeout": 3600,

		"MaxFileSizeMB": 2048,
		"CaseSensitiveFilenames": null,
		"DoNotCompareFileContent": false,
		"DoNotCompareFileDate": false,
		"DoNotCompareFileSize": false,
		
		"CacheDestAndHistoryFolders": false,
		"PersistentCacheDestAndHistoryFolders": false,
		"CachePath": ".\\cache\\",

		"UsePolling": false,
		"PollingDelay": 60,

		"UseIdlePriority": false,
		"UseBackgroundMode": false,
		"Affinity": [ 0 ],

		"DirlistReadDelayMs": 0,
		"FileWriteDelayMs": 0,
		"ReadBufferKB": 1024,
		"WriteBufferKB": 1024,
		"BufferReadDelayMs": 0,
		"BufferWriteDelayMs": 0,

		"ShowErrorAlerts": true,
		"LogInitialScan": false,
		"LogToFile": false,
		"AddTimestampToNormalLogEntries": true,

		"EnableMirror": true,
		"Bidirectional": false,
		"MirrorIgnoreSrcDeletions": false,
		"MirrorIgnoreDestDeletions": false,
		"MirrorDestPath": "C:\\yourpath\\yourproject-backup\\",
		"MirrorDestPathMinFreeSpace": 0,

		"EnableHistory": false,
		"HistoryDestPath": "C:\\yourpath\\yourproject-history\\",
		"HistoryDestPathMinFreeSpace": 0,
		"HistoryVersionFormat": "timestamp_before_ext",
		"___VersionFormatOptions": "prefix_timestamp | timestamp_before_ext | sufix_timestamp",
		"HistoryVersionSeparator": ".",

		"MirrorWatchedExtensions": [
			"*"
		],
		"MirrorWatchedFileNames": [
		],
		"MirrorExcludedExtensions": [
			"*~",
			"tmp"
		],
		"MirrorIgnorePathsStartingWith": [
			"\\Temp\\"
		],
		"MirrorIgnorePathsContaining": [
			"\\~$",
			".tmp\\",
			"\\db.lock",
			"\\Logs\\",
			"\\node_modules\\",
			"\\wwwroot\\dist\\"
		],
		"MirrorIgnorePathsEndingWith": [
		],

		"HistoryWatchedExtensions": [
			"txt"
		],
		"HistoryWatchedFileNames": [
			"ZMover.dat"
		],
		"HistoryExcludedExtensions": [
			"*~",
			"bak",
			"tmp"
		],
		"HistoryIgnorePathsStartingWith": [
			"\\Temp\\"
		],
		"HistoryIgnorePathsContaining": [
			"\\~$",
			".tmp\\",
			".localhistory\\",
			".vshistory\\",
			"\\bin\\",
			"\\obj\\",
			"\\db.lock",
			"\\sqlite3\\",
			"\\Logs\\",
			"\\node_modules\\",
			"\\wwwroot\\dist\\"
		],
		"HistoryIgnorePathsEndingWith": [
		]
	}
}

Installation

* Copy appsettings.example.json to appsettings.json
* Update the settings in appsettings.json according to your needs
* Build the project
* In the build folder launch FolderSync.bat

Analytics