最近经常遇到文件同步的场景:开发完将文件上传到站点、局域网内文件互拷。
因为很多是相同的文件,覆盖拷贝费时费力,当然也试了各种工具例如FlashFXP、Beyond Compare,但要么部署麻烦,要么配置麻烦,换一台电脑又得搞一次,贼烦。
然后想着这有啥技术难度,自己搞一个呗,所以就建了这么一个项目,因为也是解决自己的痛点,所以目标也很明确,追求简单、高效、好用。
目前算完成v1.0版本吧,试了局域网内文件的镜像拷贝,还是贼快贼爽的,Ftp同步暂时没想到办法解决一致性校验的问题,文件还是覆盖拷贝,但速度也还行,毕竟文件夹有做了校验。
========== 作者:未闻 出处:博客园 原文链接点此处 ==========
一、功能介绍
1. 同步类型
- 本地 to 本地(本地跨盘符拷贝50个文件,25个文件夹,6.5M,镜像同步,耗时367.8543毫秒,速度贼快)
- 本地 to FTP(本地IIS搭建FTP,耗时1433.5284毫秒)
- FTP to 本地(本地IIS搭建FTP,耗时1100.5071毫秒)
- FTP to FTP(未测试)
2. 同步模式:镜像同步、增量同步
3. 文件校验策略:Size 文件大小,Date 最后修改时间,Hash 文件哈希值
二、设计思路
1.开发环境
- .NET Framework 4.6
- Visual Studio 2019
- FluentFTP 34.0.2
2.简单画的类图
三、待解决问题
1. FTP上传下载的文件,无法保留原文件的属性(创建时间、修改时间等),导致没办法按最后修改时间进行一致性校验,但是Beyond Compare可以做到保留~有了解还请不吝指点一二。
2. 校验另一个方式是用文件的哈希值,但是目前试的几个基于IIS的FTP服务器都不支持返回文件哈希值,所以也没办法~
四、参考资料