使用Microsoft Sync Framework做文件同步
闲来无事整理电脑时候发现电脑程序菜单里面有个Microsoft Sync Framework,看到名字也知道是异步框架。但使用场景就不太清楚了。后面查阅了相关资料,知道比较典型的使用就是做文件同步了。
结果第二天就在公司遇到比较坑爹的客户需求,需要将一个网站的数据共享,而且数据量比较大,其中产品的图片就成了一个大问题了。如果修改程序会提高维护成功,而且不可能为一个客户去修改程序,所以只能考虑文件复制过去,添加产品上传图片后也要自动同步过去,最初考虑使用SecondCopy 但是要配置的数量太多,所以绝对用Microsoft Sync 去实现.同时对文件夹进行监控,如果有改变就启动同步。
static void Main(string[] args){//存放需要同步的文件夹,以后其他场景临时使用一下. 格式 <item from="G:\uploads\387364" to=" G:\uploads\387361" />XElement doc = XElement.Load("File.config");var itms = doc.Descendants("item");foreach (var item in itms){var from = item.Attribute("from").Value;var to = item.Attribute("to").Value;if (!string.IsNullOrEmpty(from) && !string.IsNullOrEmpty(to) && Directory.Exists(from)){if (!Directory.Exists(to)){Directory.CreateDirectory(to);}//来源文件夹FileSyncProvider sourceProvider = new FileSyncProvider(Guid.NewGuid(), from);//目录文件夹FileSyncProvider destProvider = new FileSyncProvider(Guid.NewGuid(), to);SyncOrchestrator syncAgent = new SyncOrchestrator();syncAgent.LocalProvider = sourceProvider;syncAgent.RemoteProvider = destProvider;syncAgent.Synchronize();Console.WriteLine(from + " 到 " + to + " 同步完成");//文件夹监控FileSystemWatcher watcher = new FileSystemWatcher(from, "*.jpg");watcher.Changed += (O, E) =>{Console.WriteLine(E.ChangeType);//启动同步回话syncAgent.Synchronize();Console.WriteLine(from + " 到 " + to + " 同步完成");};watcher.EnableRaisingEvents = true;}}Console.ReadLine();}
在服务器上使用时候,还是比较稳定,在2万多图片的文件夹下使用,没有出现cpu和内存占用过高的问题.
转载于:https://www.cnblogs.com/xuchengzone/archive/2012/09/03/Microsoft-Sync-Framework.html
使用Microsoft Sync Framework做文件同步相关推荐
- Microsoft Sync Framework 系列(三):微软同步框架出现背景及要解决的问题
持续连接的C\S,B\S系统存在固有的缺陷,偶尔连接系统(OCA)在试图解决这些问题的同时又引入了新的问题.开发offline系统存在很多挑战,这些挑战都是 Microsoft Sync Framew ...
- Microsoft Sync Framework 2.1 软件开发包 (SDK)
Sync Framework 2.1 引入了新功能,这些功能支持您计算机上的 SQL Server 或 SQL Server Compact 数据库与 SQL Azure 数据库进行同步.此发行版还引 ...
- Introducing Microsoft Sync Framework: Sync Services for File Systems
https://msdn.microsoft.com/en-us/sync/bb887623 Introduction to Microsoft Sync Framework File Synchro ...
- Microsoft Sync Framework同步数据库 3:针对同步进行设置
针对同步进行设置 在可以使用 Sync Framework 同步数据库之前,需要通过称为"设置(provisioning)"的流程配置它.所需的设置类型因数据库类型而异.本篇提供有 ...
- Syncthing VS Resilio Sync VS Nextcloud 文件同步服务对比
功能 Syncthing Resilio Sync Nextcloud 版本控制 阶段性版本控制 回收站 限客户端 网络环境 1. 同步无限制 2. 中区中转服务器稀少 1. 同步无限制 2. 设备发 ...
- 执行svn sync命令做svn同步时遇到Failed to get lock on destination repos, currently held by ...错误
手动执行命令时,报错: 发生以上情况的有两种情况: 1.有正在同步的进程未完成,lock未释放: 2.上一次同步的进程异常导致中断,lock未释放. 3.有svn冲突 SVN同步时,源库端会在目标库端 ...
- Ubuntu 文件同步工具 rsync
cp和scp是ubuntu中文件拷贝常用的两个命令,一般在同一台服务器上我们是用cp命令,跨服务时使用过scp命令,但是如果做文件同步的话,rsync要比上述两个命令更好用一些,跨不跨服务器都是如此. ...
- 可用于在 Microsoft.NET Framework 4.0 中的 ASP.NET 浏览器定义文件的修补程序
http://support.microsoft.com/kb/2600088 此修补程序为 Internet Explorer 和 Mozilla Firefox 在浏览器定义文件引入了更新的定义. ...
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...
- IIS异常:CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.。。”--“拒绝访问...
CS0016: 未能写入输出文件"c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/........ ...
最新文章
- 一文教会你写90%的shell脚本!
- LeetCode 657 : Robot Return to Origin
- 单机部署zookeeper、kafka
- 深度复制_Python 列表切片陷阱:引用、复制与深复制
- 面向接口编程详解(三)——模式研究
- linux下JNI的demo
- C#获取本机可用端口
- python用matplotlib画球_python 如何用matplotlib画一个漂亮的圆-百度经验
- Eclipse导入GitHub上面项目的两处报错处理
- 分享100个好看且实用的PPT模板
- Qunee For Html5 开发清新、高效的拓扑图组件
- 22二叉树非递归遍历算法
- 自己建设网站需要学习什么?
- 取石子游戏--尼姆博弈
- 金项奖入围展播 | 梦系来客,星耀有礼
- python2升级python3语法错误总结
- 第一次实验报告学习总结
- 使用广播信道的数据链路层相关知识点
- html banner图片滚动,无缝循环滚动(适用banner、图片滚动)
- 戴尔服务器t420系统,戴尔PowerEdge T420
热门文章
- 享元模式在文本编辑器中的应用
- Mysql 哈希索引
- Lua 如何快速的读取一个文件
- 协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格
- FZU_2019_Mountain Number题解
- Docker 外部访问容器Pp、数据管理volume、网络network 介绍
- vue.js MVVM模式介绍及案例
- jquery.serialize
- 乘法器的Verilog HDL实现
- 每日英语:6 Brainy Habits of the Wisest People