暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

全平台文件同步工具

生有可恋 2022-05-24
1338

介绍一款文件同步工具,是基于C++开发的。


工具名叫FreeFileSync,支持 windows、linux 和 苹果系统。下载地址为:

  • https://freefilesync.org/download.php



网站上有打包好的源代码,github上并没有该项目的源码,github只有一个flatpak编译环境的repo,并不是FreeFileSync的源码库。flatpak是下一代的linux桌面程序的编译发布方式。



flatpak 编译环境的github项目地址为:

  • https://github.com/flathub/org.freefilesync.FreeFileSync


该工具支持图形化和命令行两种方式运行。工具界面:



工具支持中文设置,简单的使用就是选择源目录和目的目录即可执行。


其中同步方式有三种方式:

  • 双向同步(最终两个目录会相同)

  • 镜像(单向,会删掉目的目录中多出来的文件)

  • 更新(单向,只更新缺少或变动的文件)



执行过程中会有进度窗口,显示同步进度和速度。



同步完成后会给出日志,显示出错的文件



每个任务都需要保存为一个配置文件,方便后续调用。



图形化的配置文件可以转为批处理配置文件。批处理类型的配置文件可以在命令行执行。



在命令行执行时,如果允许弹出进度对话框,最终执行时会弹出对话框。

    FreeFileSync.exe "D:\filesyncjob\desktop.ffs_batch"


    配置文件是一个XML文件,里面定义了任务的参数,比如源目录,目的目录,同步类型,过滤文件列表等:

      $ cat desktop.ffs_batch
      <?xml version="1.0" encoding="utf-8"?>
      <FreeFileSync XmlType="BATCH" XmlFormat="17">
      <Compare>
      <Variant>TimeAndSize</Variant>
      <Symlinks>Exclude</Symlinks>
      <IgnoreTimeShift/>
      </Compare>
      <Synchronize>
      <Variant>Update</Variant>
      <DetectMovedFiles>false</DetectMovedFiles>
      <DeletionPolicy>RecycleBin</DeletionPolicy>
      <VersioningFolder Style="Replace"/>
      </Synchronize>
      <Filter>
      <Include>
      <Item>*</Item>
      </Include>
      <Exclude>
      <Item>\System Volume Information\</Item>
      <Item>\$Recycle.Bin\</Item>
      <Item>\RECYCLE?\</Item>
      <Item>*\thumbs.db</Item>
      <Item>*ScanPort.exe</Item>
      </Exclude>
      <TimeSpan Type="None">0</TimeSpan>
      <SizeMin Unit="None">0</SizeMin>
      <SizeMax Unit="None">0</SizeMax>
      </Filter>
      <FolderPairs>
      <Pair>
      <Left>C:\Users\Administrator\Desktop</Left>
      <Right>G:\sync8</Right>
      </Pair>
      </FolderPairs>
      <Errors Ignore="true" Retry="0" Delay="5"/>
      <PostSyncCommand Condition="Completion"/>
      <LogFolder/>
      <EmailNotification Condition="Always"/>
      <Batch>
      <ProgressDialog Minimized="false" AutoClose="false"/>
      <ErrorDialog>Show</ErrorDialog>
      <PostSyncAction>None</PostSyncAction>
      </Batch>
      </FreeFileSync>


      同步参数中可以调整比较文件的方式,可以比较文件时间和大小,也可以比较文件内容,类似对比md5值。如果为了提升速度,可以只比较文件大小。



      在比较文件列表的过程中,可以设置过滤条件,忽略文件或目录,可以使用通配符模糊匹配:




      文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论