The invention discloses a method of real-time synchronization based on Windows monitoring. The method uses ReadDirectoryChanges method to monitor source files to achieve real-time synchronization, and adopts complete synchronization method to check real-time synchronization by traversing query files, establishing file record tables through memory mapping, and comparing table lookups in perfect hash mode. At the same time, a fault-tolerant mechanism using snapshot method is established to remedy special files. The invention can reduce the loss of data, reduce the time and resource overhead of real-time synchronization, and has better instantaneity.
【技术实现步骤摘要】
一种基于Windows监控的实时同步的方法
本专利技术属于计算机Windows系统文件操作领域,尤其涉及一种基于Windows监控的实时同步的方法。
技术介绍
在文件频繁使用过程中,用户通常有过这样的经历:因为误操作、系统崩溃、病毒感染导致自己的辛苦成果被修改或被删除。虽然会有定时做文件备份,但还原的只能是上个时间段的备份点,而这段期间的努力都将丢失,用户苦于此类情况而不得解。能不能实时记录文件的变化并对其备份的功能,出于这种考虑,文件实时同步功能的需求因此孕育而生。文件实时同步就是实时监控源文件夹的内容,当源文件夹中的文件发生改变时能实时的将源文件夹中发生改变的文件、文件夹同步到目标位置。要实现文件的实时同步,重点在于实时的文件监控与即时的文件同步上面。实时文件监控:实时监控源路径文件,能快速获知源文件的新增、修改、改名、删除等变动情况;即时的文件同步:在实时获取了变动情况后,能即时地将变动文件准确且有效地同步到目标位置文件上,同时还需要根据用户需求过滤一些用户不关心的文件和文件类型。在实时文件监控方面,微软提供了两个系统API(FindFirstChangeNotification与ReadDirectoryChanges)用于监控和获取文件夹内文件的变动消息。FindFirstChangeNotification能获取到指定文件夹下所有文件变动消息,优点是快速,无论源路径发生了任何改变,该API都能快速获取并返回结果,但该方法并不能得知具体哪些文件发生哪些变动。由于无法得知具体变动信息,在同步方面只能采取遍历全文件夹,与目标文件夹的文件进行对比,找出 ...
【技术保护点】
1.一种基于Windows监控的实时同步的方法,其特征在于:通过ReadDirectoryChanges方法进行实时同步, 每进行一次实时同步后,记录实时同步次数,当完整同步间隔时间达到设定值或者实时同步的次数达到设定值后进行完整同步,完成完整同步后又通过ReadDirectoryChanges方法进行实时同步,当完整同步间隔时间达到设定值或者实时同步的次数达到设定值后再进行完整同步,如此循环,直到结束。
【技术特征摘要】
1.一种基于Windows监控的实时同步的方法,其特征在于:通过ReadDirectoryChanges方法进行实时同步,每进行一次实时同步后,记录实时同步次数,当完整同步间隔时间达到设定值或者实时同步的次数达到设定值后进行完整同步,完成完整同步后又通过ReadDirectoryChanges方法进行实时同步,当完整同步间隔时间达到设定值或者实时同步的次数达到设定值后再进行完整同步,如此循环,直到结束。2.根据权利要求1所述的一种基于Windows监控的实时同步的方法,其特征在于:每完成一次实时同步和完整同步后都建立一张文件记录表,用于记录当前同步后的所有文件信息。3.根据权利要求2所述的一种基于Windows监控的实时同步的方法,其特征在于:所述文件记录表通过内存映射文件保存在磁盘上。4.根据权利要求1所述的一种基于Windows监控的实时同步的方法,其特征在于:所述通过ReadDirectoryChanges方法进行实时同步的具体流程为:通过CreateIoCompletePort方法对源文件路径创建IO完成端口句柄,交由ReadDirectoryChanges建立对源路径文件监控,同时创建监控线程与消息处理线程,监控线程通过GetQueuedCompletionStatus方法获取完整端口状态,抓取文件变动信息,放入消息队列里;消息处理线程则从消息队列里获取文件变动信息,针对不同的文件变动信息处理变动数据;处理完变动数据后发送变动数据到实时同步线程进行实时同步。5.根据权利要求2所述的一种基于Windows监控的实时同步的方法,其特征在于:所述完整同步的具体流程为:在接到完整同步通知后,先通过FindFirstFile方法遍历和对...
【专利技术属性】
技术研发人员:袁翔,
申请(专利权)人:成都傲梅科技有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。