一种监控文件变化和同步的方法及系统技术方案

技术编号:14517236 阅读:34 留言:0更新日期:2017-02-01 19:38
本发明专利技术提供一种监控文件变化和同步的方法及系统,应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,所述方法包括:在启动应用程序的进程时,创建监控线程和同步线程;获取指定目录句柄并创建IO完成端口使之关联指定目录句柄;创建将变化的文件信息传输至同步线程的传输对象;监控线程通过向windows系统读取文件目录句柄是否有变化获取对应的文件的变化信息,通过IO完成端口获取具体文件变化信息,对变化后的文件进行封装形成任务数据包并传输至同步线程;同步线程对任务数据包进行处理,将变化的文件同步到与应用程序对应的服务器上。本发明专利技术可以监控到所有指定目录下的文件变化,避免丢失文件变化信息。

【技术实现步骤摘要】

本专利技术涉及数据同步
,特别涉及数据同步
中的文件变化监控,具体为一种监控文件变化和同步的方法及系统
技术介绍
随着互联网技术发展及计算机设备的普及,用户拥有了大量的终端设备,如台式电脑、笔记本电脑、平板电脑、手机等电子产品,用户在不同场景下使用不同设备,但是各终端设备又有一些文件用户希望可以进行同步使用,即台式电脑上修改了文件,手机上的该文件可以更新为修改后的状态。为了在windows下同步盘监控文件变化,目前普遍采用的技术有基于窗口消息。但基于基于窗口消息方案有一些局限性,包括:(1)应用程序只会接收基于窗口消息的通知。windowsvista中虽然已经可以对所有文件的所有变更做监控,但windowsxp中不可以。(2)基于窗口消息会带来性能上的问题,大量文件发生变化或目录间做万级文件移动变化时,应用程序会不断接收到变更消息,同时会有部分通知丢失。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种监控文件变化和同步的方法及系统,用于解决现有技术无法对同步盘的文件进行高效准确地监控和同步的问题。为实现上述目的及其他相关目的,本专利技术一方面提供一种监控文件变化和同步的方法,应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,所述监控文件变化和同步的方法包括以下步骤:在启动应用程序的进程时,创建用于监控所述应用程序所指定目录下的文件的变化的监控线程和创建用于在监控到所述应用程序所指定目录下的文件有变化时将变化的文件同步到与所述应用程序对应的服务器上的同步线程;获取所述应用程序所指定目录下的文件的文件目录句柄并创建一个IO完成端口并使之关联所述文件目录句柄;创建一个在所述监控线程监控到所述应用程序所指定目录下的文件有变化时将变化的文件信息传输至所述同步线程的传输对象;启动所述监控线程和所述同步线程,所述监控线程通过向windows系统读取所述文件目录句柄是否有变化获取所述应用程序所指定目录下的文件变化信息;所述监控线程在获取到所述应用程序所指定目录下的文件有变化时,通过所述IO完成端口获取具体文件变化信息;所述监控线程对获取的所述具体文件变化信息进行解析获取变化后的文件并对所述变化后的文件进行封装形成一任务数据包;利用创建的所述传输对象将所述任务数据包传输至所述同步线程;所述同步线程对所述任务数据包进行处理,将变化的文件同步到与所述应用程序对应的服务器上。于本专利技术的一实施例中,以异步IO方式且以共享读和共享写的方式获取所述应用程序所指定目录下的文件的文件目录的句柄。于本专利技术的一实施例中,通过所述IO完成端口以异步IO的方式获取具体文件变化信息。于本专利技术的一实施例中,所述监控线程和所述同步线程通过判断所述应用程序是否关闭来确定是否关闭所述监控线程和所述同步线程。于本专利技术的一实施例中,所述同步线程为一个同步线程或同步线程池。本专利技术另一方面还提供一种监控文件变化和同步的系统,应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,所述监控文件变化和同步的系统包括:线程创建模块,用于在启动应用程序的进程时,创建用于监控所述应用程序所指定目录下的文件的变化的监控线程和创建用于在监控到所述应用程序所指定目录下的文件有变化时将变化的文件同步到与所述应用程序对应的服务器上的同步线程;初始化模块,用于获取所述应用程序所指定目录下的文件的文件目录句柄并创建一个IO完成端口并使之关联所述文件目录句柄,并创建一个在所述监控线程监控到所述应用程序所指定目录下的文件有变化时将变化的文件信息传输至所述同步线程的传输对象;监控线程处理模块,用于启动所述监控线程,通过向windows系统读取所述文件目录句柄是否有变化获取所述应用程序所指定目录下的文件变化信息,在获取到所述应用程序所指定目录下的文件有变化时,通过所述IO完成端口获取具体文件变化信息,并对获取的所述具体文件变化信息进行解析获取变化后的文件并对所述变化后的文件进行封装形成一任务数据包并利用创建的所述传输对象将所述任务数据包传输至所述同步线程;同步线程处理模块,用于启动所述同步线程并对接收到的所述任务数据包进行处理,将变化的文件同步到与所述应用程序对应的服务器上。于本专利技术的一实施例中,所述初始化模块以异步IO方式且以共享读和共享写的方式获取所述应用程序所指定目录下的文件的文件目录的句柄。于本专利技术的一实施例中,所述监控线程处理模块通过所述IO完成端口以异步IO的方式获取具体文件变化信息。于本专利技术的一实施例中,所述监控线程和所述同步线程通过判断所述应用程序是否关闭来确定是否关闭所述监控线程和所述同步线程。于本专利技术的一实施例中,所述同步线程为一个同步线程或同步线程池。如上所述,本专利技术的监控文件变化和同步的方法及系统,具有以下有益效果:本专利技术可以监控到所有的文件变化,避免了可能丢失的文件变化信息,本专利技术的监控过程通过任务方式,保证了所有文件变化都可被记录并执行。附图说明图1显示为本专利技术的监控文件变化和同步的方法的原理流程示意图。图2显示为本专利技术的监控文件变化和同步的方法的具体流程示意图。图3显示为本专利技术的监控文件变化和同步的方法于一实施例中的流程示意图。图4显示为本专利技术的监控文件变化和同步的系统的原理结构示意图。元件标号说明100监控文件变化和同步的系统101线程创建模块102初始化模块103监控线程处理模块104同步线程处理模块S101~S111步骤具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本实施例的目的在于提供一种监控文件变化和同步的方法及系统,用于解决现有技术无法对同步盘的文件进行高效准确地监控和同步的问题。以下将详细阐述本实施例的一种监控文件变化和同步的方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种监控文件变化和同步的方法及系统。如图1所示,本实施例提供一种监控文件变化和同步的方法及系统,以共享读和共享写的方式打开文件目录的句柄并使用异步IO;创建一个关于文件目录句柄的IO完成端口;监控线程异步读取文件目录句柄的变化信息,读取文件变化;监控线程等待IO完成端口一次完成的操作;解析文件变化,封装文件变化信息并发起任务;同步线程执行该任务达到同步目的;退出时IO完成端口并关闭相关句柄。具体地,如图2所示,本实施例中监控文件变化和同步的方法应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,所述应用程序优选为具有文件存储功能的应用程序,例如为但不限于同步盘,本实施例在具体说明时以应用程序为同步盘为例进行说明。如图2所示,本文档来自技高网...

【技术保护点】
一种监控文件变化和同步的方法,应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,其特征在于,所述监控文件变化和同步的方法包括以下步骤:在启动应用程序的进程时,创建用于监控所述应用程序所指定目录下的文件的变化的监控线程和创建用于在监控到所述应用程序所指定目录下的文件有变化时将变化的文件同步到与所述应用程序对应的服务器上的同步线程;获取所述应用程序所指定目录下的文件的文件目录句柄并创建一个IO完成端口并使之关联所述文件目录句柄;创建一个在所述监控线程监控到所述应用程序所指定目录下的文件有变化时将变化的文件信息传输至所述同步线程的传输对象;启动所述监控线程和所述同步线程,所述监控线程通过向windows系统读取所述文件目录句柄是否有变化获取所述应用程序所指定目录下的文件变化信息;所述监控线程在获取到所述应用程序所指定目录下的文件有变化时,通过所述IO完成端口获取具体文件变化信息;所述监控线程对获取的所述具体文件变化信息进行解析获取变化后的文件并对所述变化后的文件进行封装形成一任务数据包;利用创建的所述传输对象将所述任务数据包传输至所述同步线程;所述同步线程对所述任务数据包进行处理,将变化的文件同步到与所述应用程序对应的服务器上。...

【技术特征摘要】
1.一种监控文件变化和同步的方法,应用于windows系统下对应用程序所指定的目录下的文件监控和同步过程中,其特征在于,所述监控文件变化和同步的方法包括以下步骤:在启动应用程序的进程时,创建用于监控所述应用程序所指定目录下的文件的变化的监控线程和创建用于在监控到所述应用程序所指定目录下的文件有变化时将变化的文件同步到与所述应用程序对应的服务器上的同步线程;获取所述应用程序所指定目录下的文件的文件目录句柄并创建一个IO完成端口并使之关联所述文件目录句柄;创建一个在所述监控线程监控到所述应用程序所指定目录下的文件有变化时将变化的文件信息传输至所述同步线程的传输对象;启动所述监控线程和所述同步线程,所述监控线程通过向windows系统读取所述文件目录句柄是否有变化获取所述应用程序所指定目录下的文件变化信息;所述监控线程在获取到所述应用程序所指定目录下的文件有变化时,通过所述IO完成端口获取具体文件变化信息;所述监控线程对获取的所述具体文件变化信息进行解析获取变化后的文件并对所述变化后的文件进行封装形成一任务数据包;利用创建的所述传输对象将所述任务数据包传输至所述同步线程;所述同步线程对所述任务数据包进行处理,将变化的文件同步到与所述应用程序对应的服务器上。2.根据权利要求1所述的监控文件变化和同步的方法,其特征在于:以异步IO方式且以共享读和共享写的方式获取所述应用程序所指定目录下的文件的文件目录的句柄。3.根据权利要求1所述的监控文件变化和同步的方法,其特征在于:通过所述IO完成端口以异步IO的方式获取具体文件变化信息。4.根据权利要求1所述的监控文件变化和同步的方法,其特征在于:所述监控线程和所述同步线程通过判断所述应用程序是否关闭来确定是否关闭所述监控线程和所述同步线程。5.根据权利要求1或4所述的监控文件变化和同步的方法,其特征在于:所述同步线程为一个同步线程或同步线程池。6.一种监控文件变化和同步的系统,应...

【专利技术属性】
技术研发人员:王欢
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1