CN102567341A - 一种实现软件内外目录同步的方法和系统 - Google Patents

一种实现软件内外目录同步的方法和系统 Download PDF

Info

Publication number
CN102567341A
CN102567341A CN2010105918666A CN201010591866A CN102567341A CN 102567341 A CN102567341 A CN 102567341A CN 2010105918666 A CN2010105918666 A CN 2010105918666A CN 201010591866 A CN201010591866 A CN 201010591866A CN 102567341 A CN102567341 A CN 102567341A
Authority
CN
China
Prior art keywords
file
software
thread
folder
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105918666A
Other languages
English (en)
Other versions
CN102567341B (zh
Inventor
黄渊
黄飞跃
傅斌
杨洋
王建宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201010591866.6A priority Critical patent/CN102567341B/zh
Publication of CN102567341A publication Critical patent/CN102567341A/zh
Application granted granted Critical
Publication of CN102567341B publication Critical patent/CN102567341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实现软件内外目录同步的方法和系统,方法包括:在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新;轮询线程扫描过的文件夹被添加到已访问文件夹列表中;实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新。通过本发明,使用极少的资源开销,实现了实时准确的软件内外目录同步。

Description

一种实现软件内外目录同步的方法和系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种实现软件内外目录同步的方法和系统。
背景技术
为实现对计算机上图片的方便快捷处理,目前开发出了很多图像处理工具,如:可牛看图、Picasa等等。可牛看图是一款简单易用的图片浏览软件,能够提供丰富多样的图片浏览方式、批量图片上传等功能。Picasa是一款可以帮助用户在计算机上立即找到、修改和共享所有图片的软件。用户每次打开Picasa时,软件都会自动查找所有图片(甚至是那些用户已经遗忘的图片),并将查找的图片按日期顺序放在可见的相册中,同时以用户易于识别的名称命名文件夹;用户可以通过拖放操作来排列相册,还可以添加标签来创建新组。
上述图像处理工具的显示界面如图1所示,通常由文件夹树和通铺组成,界面的左半部分以树状结构展示的所有文件夹即称为文件夹树;界面的右半部分平铺展示的选定文件夹(图中为C盘)及其所有子文件夹内的图片即称为通铺。
当计算机中的文件发生改变(增加、修改或删除)时,图像处理工具的软件内外目录需要实现同步,即文件在软件外部(如Windows资源管理器中)发生改变(增加、修改或删除)时,软件内部需要及时捕获并响应这一改变,这种响应在所述软件中表现为文件夹树和通铺中的内容的及时更新。
目前,可牛看图采用轮询机制来进行软件内外目录的同步,即系统循环访问每一个文件夹,判断其中的文件是否有增加、修改或删除操作,如果有,则同步到软件视图中。其缺点是:该轮询机制会持久、大量占用系统资源;同步缓慢,当外部文件夹中的文件发生修改时,只有当轮询到该文件夹时才会被同步,同步并不是实时的。
Picasa采用实时监控的方式来监视文件夹,每当发生文件的增加、修改或删除操作,windows应用程序接口(API,Application Programming Interface)会通知Picasa进行同步。其缺点是:每次启动软件时,都会消耗大量资源进行扫描(即遍历文件夹下的所有文件);Picasa关闭时文件夹内发生的修改是无法监控的,其必须在启动时通过扫描来同步这些修改,这会消耗大量的系统资源,并减慢软件启动速度。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现软件内外目录同步的方法和系统,以实现软件内外目录的快速同步,并节省系统资源。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种实现软件内外目录同步的方法,该方法包括:
在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;
所述轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新;所述轮询线程扫描过的文件夹被添加到已访问文件夹列表中;
所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新。
该方法进一步包括:
在计算机启动软件时,遍历所述计算机的所有磁盘分区,并为每个磁盘分区开启一个实时监控线程进行监控。
所述待扫描文件夹列表中包括:所述软件的文件夹树中被选中的文件夹及其子文件夹和对应通铺中的文件夹。
该方法进一步包括:
所述轮询线程对待扫描文件夹列表中的文件夹进行扫描之前,判断待扫描的文件夹是否存在于所述已访问文件夹列表中,如果存在,则不做扫描;如果不存在,则进行扫描。
所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描,具体包括以下操作:
步骤a、所述实时监控线程收到一条文件修改信息;
步骤b、尝试接收所述文件修改信息,并启动计时器;
步骤c、判断所述计时器超时前是否收到新的文件修改信息,如果收到,执行步骤d;否则,执行步骤e;
步骤d、判断所述新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,如果是,执行步骤;否则,执行步骤e;
步骤e、通知所述轮询线程对发生修改的文件夹进行扫描;
步骤f、重置计时器并返回步骤b。
本发明还提供了一种实现软件内外目录同步的系统,该系统包括:
线程开启模块,用于在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;
轮询线程控制模块,用于控制所述轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新;还用于将所述轮询线程扫描过的文件夹添加到已访问文件夹列表中;
实时监控线程控制模块,用于控制所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描;
列表维护模块,用于维护所述待扫描文件夹列表和已访问文件夹列表。
所述线程开启模块进一步用于,在计算机启动软件时,遍历所述计算机的所有磁盘分区,为每个磁盘分区开启一个实时监控线程进行监控。
所述待扫描文件夹列表中包括:所述软件的文件夹树中被选中的文件夹及其子文件夹和对应通铺中的文件夹。
所述轮询线程控制模块进一步用于,在控制所述轮询线程对待扫描文件夹列表中的文件夹进行扫描之前,判断待扫描的文件夹是否存在于所述已访问文件夹列表中,如果存在,则不做扫描;如果不存在,则进行扫描。
所述实时监控线程控制模块进一步用于,控制所述实时监控线程执行以下操作:
步骤a、所述实时监控线程收到一条文件修改信息;
步骤b、尝试接收所述文件修改信息,并启动计时器;
步骤c、判断所述计时器超时前是否收到新的文件修改信息,如果收到,执行步骤d;否则,执行步骤e;
步骤d、判断所述新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,如果是,执行步骤f;否则,执行步骤e;
步骤e、通知所述轮询线程对发生修改的文件夹进行扫描;
步骤f、重置计时器并返回步骤b。
本发明所提供的一种实现软件内外目录同步的方法和系统,在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新;轮询线程扫描过的文件夹被添加到已访问文件夹列表中;实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新。
通过本发明,能够快速响应软件外部文件夹中对文件的增加、修改和删除操作,还能节省系统资源,不做不必要的扫描,不会在软件启动时进行大量扫描而造成性能瓶颈。
附图说明
图1为现有图像处理工具的显示界面的示意图;
图2为本发明实施例的一种实现软件内外目录同步的方法流程图;
图3为本发明实施例中文件修改信息的捕获示意图;
图4为本发明实施例的排重机制的流程图;
图5为本发明实施例的一种实现软件内外目录同步的系统结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明所提供的一种实现软件内外目录同步的方法,如图2所示,在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程(所述轮询线程和实时监控线程并行执行);轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新;轮询线程扫描过的文件夹被添加到已访问文件夹列表中;实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新。
其中,在计算机启动软件时,可以遍历计算机的所有磁盘分区,并为每个磁盘分区开启一个实时监控线程进行监控。
轮询线程负责扫描待扫描文件夹列表中的文件夹内容的改变,下面结合图2对轮询线程的处理过程进行详细阐述。
轮询线程并不是轮询计算机上的所有文件夹,而是轮询待扫描文件夹列表中的文件夹,该列表即为图1所示的界面上(文件夹树和通铺)展示的文件夹,包括:文件夹树中被用户选中的文件夹及其子文件夹和对应通铺中的所有文件夹。例如:用户选中图1所示文件夹树中的文件夹boost_1_34_1,那么待扫描文件夹列表中的文件夹,即包括文件夹boost_1_34_1及其子文件夹,以及与boost_1_34_1及其子文件夹对应的通铺中的所有文件夹;轮询线程随即对上述文件夹列表中的文件夹进行扫描,该扫描是对计算机磁盘的相应文件夹的数据扫描,而不是对软件内部数据的扫描。由此可知,当文件夹树中选中的文件夹改变时,待扫描文件夹列表也随之改变。此外,由于计算机磁盘中的其他文件夹内容的改变不会对图1所示界面的展示造成影响,因此不做扫描。
另外,轮询线程不会重复扫描同一文件夹,除非实时监控线程通知轮询线程该文件夹的内容发生了改变;轮询线程扫描过的文件夹会被添加到已访问文件夹列表中,那么在下一次轮询时,如果发现待扫描的文件夹已经存在于已访问文件夹列表中,则不会对其进行扫描。相应的,轮询线程在对待扫描文件夹列表中的文件夹进行扫描之前,需要首先判断待扫描的文件夹是否存在于已访问文件夹列表中(即判断该文件夹是否已被扫描),如果存在,则不做扫描;如果不存在,则进行扫描。
较佳的,轮询线程的扫描速度可以控制在K个文件夹/5秒,即每5秒启动一次轮询过程,每次轮询过程遍历待扫描文件夹列表中的K个文件夹,而不是遍历待扫描文件夹列表中的所有文件夹;如果遍历的文件夹在已访问文件夹列表中,则不需要扫描。如此一来,可以控制每次轮询过程中扫描文件夹的数量,以保证一次轮询过程不会占用太多资源。也就是说,上述处理可以保证轮询线程所消耗的系统资源是极低的,并且不会影响扫描的效果。
需要说明的是,每次文件夹扫描过程,会遍历计算机磁盘中对应该文件夹下的所有文件和子文件夹,查看其存在性、可见性(即是否为隐藏文件)以及最后修改时间等相关数据,如果这些相关数据与软件内部文件夹中的数据存在差异,则依据所遍历文件夹的相关数据对软件内部文件夹中的数据进行更新。这样,即可准确获知文件的增加、修改和删除等操作,其中还包括可见性的修改。
另外,轮询线程会根据待扫描文件夹列表中的信息来更新扫描的文件夹。每次软件启动时,界面中显示上一次关闭时的视图,软件将上一次关闭时选中的文件夹、其一级子文件夹以及通铺内的所有文件夹放入待扫描文件夹列表中。
实时监控线程负责对计算机的各个磁盘中的文件夹内容的改变进行实施监控,下面结合图2对实时监控线程的处理过程进行详细阐述。
实时监控线程可以通过ReadDirectoryChangesW函数来实现对文件夹的实时监控,该ReadDirectoryChangesW函数是一个Windows API。通过该函数,实时监控线程可以快速获知外部对文件或文件夹的增加、修改和删除等操作。该函数可以通过同步和异步两种方式进行调用。
所谓同步调用,是指程序运行到该函数时,不再继续往下运行(阻塞),直到Windows系统发出一个文件修改信息;ReadDirectoryChangesW函数捕获该通知后,才继续往下运行程序。
所谓异步调用,是指程序运行到该函数时,立刻返回所有(也可能没有)未被捕获的文件修改信息,然后继续往下执行。此处,系统捕获文件修改信息和软件从系统获得文件修改信息的过程是异步的;所谓的未被捕获是从软件的角度来说的,而不是从系统的角度。文件修改信息的捕获示意图如图3所示,当文件发生修改时,系统生成一条文件修改信息,放入文件修改信息池,系统不断往池里放入文件修改信息,池里的信息称为未被捕获的文件修改信息;软件调用ReadDirectoryChangesW函数来捕获池中的信息,每次调用ReadDirectoryChangesW函数,池中的内容将被全部复制到软件内部的缓存中,被复制到软件内部缓存中的信息称为被捕获的。
在使用同步方式调用ReadDirectoryChangesW函数时,需要告知该函数要监控的文件夹和要监控的文件修改的类型,该类型如监控文件的属性(是否为隐藏文件等)变化、文件名的变化、文件的创建和文件夹名字的变化等等,然后调用的ReadDirectoryChangesW函数将阻塞。当ReadDirectoryChangesW函数返回时,能够得到以链表形式组织的一系列文件修改信息,通过遍历该链表,即能够获知哪些文件发生了怎样的修改。
需要说明的是,当某一个实时监控线程获取到一个文件修改信息时,并不会立即通知轮询线程扫描对应的文件夹,而是会经过一个排重的过程。因为用户很可能是在同一个文件夹做一次批量操作(比如批量删除)。这时,实时监控线程会依次捕获若干条同一文件夹下的文件修改信息。事实上,只需要在这些操作全部做完后,通知轮询线程对该文件夹进行一次扫描即可,而不必每次收到一条信息都通知轮询线程扫描一次,这样也可以提高效率,节省扫描所消耗的系统资源。
下面结合图4,对实时监控中的排重机制进行详细说明,主要包括以下步骤:
步骤401,实时监控线程收到一条文件修改信息。
步骤402,该实时监控线程尝试接收该文件修改信息,存储该文件修改信息所在的文件夹路径,并启动计时器n,n的取值可以为500毫秒。
步骤403,判断是否收到新的文件修改信息,如果收到,执行步骤405;否则,执行步骤404。
步骤404,判断计时是否结束,即计时器是否超时,如果是,执行步骤407;否则,返回步骤402。
步骤405,判断新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,即判断新的文件修改信息的文件夹路径与前一次接收的文件修改信息的文件夹路径是否相同,如果是,执行步骤406;否则,执行步骤407。
步骤406,重置计时器n并返回步骤402。
步骤407,结束排重,通知轮询线程对发生修改的文件夹进行扫描。
实时监控线程检查改变的文件夹是否存在于已访问文件夹列表中,如果是,则从中删除;再检查改变的文件夹是否存在于待扫描文件夹列表中,如果是,则将该文件夹移到待扫描文件夹列表的头部等待扫描,如果不是,则添加该文件夹到待扫描文件夹列表的头部等待扫描。
例如:实时监控线程先收到一条文件修改信息1,存储其文件夹路径为文件夹A;在计时器n超时前又收到一条文件修改信息2,如果文件修改信息2的文件夹路径为文件夹B,则实时监控线程结束本次排重,通知轮询线程对文件夹A进行扫描;如果文件修改信息2的文件夹路径为文件夹A,则重置计时器n,并重新尝试新的接收文件修改信息(即返回上述步骤302继续执行后续操作)。依次类推,通过上述排重机制,能够提高轮询线程的扫描效率,节省轮询线程的扫描次数,从而节省扫描所消耗的系统资源。
本发明的上述实现软件内外目录同步的方法应用于图1所示的图像处理软件中,具体包括:
在计算机启动图像处理软件时,开启一个轮询线程和至少一个实时监控线程(所述轮询线程和实时监控线程并行执行);轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与图像处理软件内部文件夹中的图片数据存在差异时,对图像处理软件内部文件夹中的图片数据进行更新;轮询线程扫描过的文件夹被添加到已访问文件夹列表中;实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与图像处理软件内部文件夹中的图片数据存在差异时,对软件内部文件夹中的图片数据进行更新。
其中,轮询线程并不是轮询计算机上的所有文件夹,而是轮询待扫描文件夹列表中的文件夹,该列表即为图1所示的界面上(文件夹树和通铺)展示的文件夹,包括:文件夹树中被用户选中的文件夹及其子文件夹和对应通铺中的所有文件夹。
实时监控线程可以通过ReadDirectoryChangesW函数来实现对文件夹的实时监控。另外,当某一个实时监控线程获取到一个文件修改信息时,并不会立即通知轮询线程扫描对应的文件夹,而是会经过一个图4所示的排重的过程,以提高效率,节省扫描所消耗的系统资源。
对应上述实现软件内外目录同步的方法,本发明还提供了一种实现软件内外目录同步的系统,如图5所示,该系统包括:线程开启模块10、轮询线程控制模块20、实时监控线程控制模块30和列表维护模块40。其中,线程开启模块10,用于在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程。轮询线程控制模块20,连接线程开启模块10,用于控制轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对软件内部文件夹中的数据进行更新;还用于将轮询线程扫描过的文件夹添加到已访问文件夹列表中。实时监控线程控制模块30,连接线程开启模块10,用于控制实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知轮询线程对发生修改的文件夹进行扫描。列表维护模块40,连接轮询线程控制模块20和实时监控线程控制模块30,用于维护待扫描文件夹列表和已访问文件夹列表。
较佳的,线程开启模块10还可用于,在计算机启动软件时,遍历计算机的所有磁盘分区,为每个磁盘分区开启一个实时监控线程进行监控。
较佳的,轮询线程控制模块20还可用于,在控制轮询线程对待扫描文件夹列表中的文件夹进行扫描之前,判断待扫描的文件夹是否存在于已访问文件夹列表中,如果存在,则不做扫描;如果不存在,则进行扫描。
较佳的,实时监控线程控制模块30还可用于,控制实时监控线程执行以下操作:
步骤a、实时监控线程收到一条文件修改信息;
步骤b、尝试接收文件修改信息,并启动计时器;
步骤c、判断计时器超时前是否收到新的文件修改信息,如果收到,执行步骤d;否则,执行步骤e;
步骤d、判断新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,如果是,执行步骤f;否则,执行步骤e;
步骤e、通知轮询线程对发生修改的文件夹进行扫描;
步骤f、重置计时器并返回步骤b。
综上所述,本发明通过结合轮询和实时监控这两种机制,不仅能够快速响应软件外部文件夹中对文件的增加、修改和删除操作,而且还能节省系统资源,不做不必要的扫描,不会在软件启动时进行大量扫描而造成性能瓶颈。此外,本发明不仅适用于图像处理工具,也适用于其他需要实现软件内外目录同步的文件处理工具。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种实现软件内外目录同步的方法,其特征在于,该方法包括:
在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;
所述轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新;所述轮询线程扫描过的文件夹被添加到已访问文件夹列表中;
所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描,并在发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新。
2.根据权利要求1所述实现软件内外目录同步的方法,其特征在于,该方法进一步包括:
在计算机启动软件时,遍历所述计算机的所有磁盘分区,并为每个磁盘分区开启一个实时监控线程进行监控。
3.根据权利要求1所述实现软件内外目录同步的方法,其特征在于,所述待扫描文件夹列表中包括:所述软件的文件夹树中被选中的文件夹及其子文件夹和对应通铺中的文件夹。
4.根据权利要求1、2或3所述实现软件内外目录同步的方法,其特征在于,该方法进一步包括:
所述轮询线程对待扫描文件夹列表中的文件夹进行扫描之前,判断待扫描的文件夹是否存在于所述已访问文件夹列表中,如果存在,则不做扫描;如果不存在,则进行扫描。
5.根据权利要求1、2或3所述实现软件内外目录同步的方法,其特征在于,所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描,具体包括以下操作:
步骤a、所述实时监控线程收到一条文件修改信息;
步骤b、尝试接收所述文件修改信息,并启动计时器;
步骤c、判断所述计时器超时前是否收到新的文件修改信息,如果收到,执行步骤d;否则,执行步骤e;
步骤d、判断所述新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,如果是,执行步骤f;否则,执行步骤e;
步骤e、通知所述轮询线程对发生修改的文件夹进行扫描;
步骤f、重置计时器并返回步骤b。
6.一种实现软件内外目录同步的系统,其特征在于,该系统包括:
线程开启模块,用于在计算机启动软件时,开启一个轮询线程和至少一个实时监控线程;
轮询线程控制模块,用于控制所述轮询线程按照预定的扫描速度对待扫描文件夹列表中的文件夹进行扫描,当发现扫描的文件夹与软件内部文件夹中的数据存在差异时,对所述软件内部文件夹中的数据进行更新;还用于将所述轮询线程扫描过的文件夹添加到已访问文件夹列表中;
实时监控线程控制模块,用于控制所述实时监控线程对计算机的磁盘进行实时监控,在获取到文件修改信息时,通知所述轮询线程对发生修改的文件夹进行扫描;
列表维护模块,用于维护所述待扫描文件夹列表和已访问文件夹列表。
7.根据权利要求6所述实现软件内外目录同步的系统,其特征在于,所述线程开启模块进一步用于,在计算机启动软件时,遍历所述计算机的所有磁盘分区,为每个磁盘分区开启一个实时监控线程进行监控。
8.根据权利要求6所述实现软件内外目录同步的系统,其特征在于,所述待扫描文件夹列表中包括:所述软件的文件夹树中被选中的文件夹及其子文件夹和对应通铺中的文件夹。
9.根据权利要求6、7或8所述实现软件内外目录同步的系统,其特征在于,所述轮询线程控制模块进一步用于,在控制所述轮询线程对待扫描文件夹列表中的文件夹进行扫描之前,判断待扫描的文件夹是否存在于所述已访问文件夹列表中,如果存在,则不做扫描;如果不存在,则进行扫描。
10.根据权利要求6、7或8所述实现软件内外目录同步的系统,其特征在于,所述实时监控线程控制模块进一步用于,控制所述实时监控线程执行以下操作:
步骤a、所述实时监控线程收到一条文件修改信息;
步骤b、尝试接收所述文件修改信息,并启动计时器;
步骤c、判断所述计时器超时前是否收到新的文件修改信息,如果收到,执行步骤d;否则,执行步骤e;
步骤d、判断所述新的文件修改信息与前一次接收的文件修改信息是否对应同一文件夹,如果是,执行步骤f;否则,执行步骤e;
步骤e、通知所述轮询线程对发生修改的文件夹进行扫描;
步骤f、重置计时器并返回步骤b。
CN201010591866.6A 2010-12-09 2010-12-09 一种实现软件内外目录同步的方法和系统 Active CN102567341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010591866.6A CN102567341B (zh) 2010-12-09 2010-12-09 一种实现软件内外目录同步的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010591866.6A CN102567341B (zh) 2010-12-09 2010-12-09 一种实现软件内外目录同步的方法和系统

Publications (2)

Publication Number Publication Date
CN102567341A true CN102567341A (zh) 2012-07-11
CN102567341B CN102567341B (zh) 2016-02-17

Family

ID=46412781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010591866.6A Active CN102567341B (zh) 2010-12-09 2010-12-09 一种实现软件内外目录同步的方法和系统

Country Status (1)

Country Link
CN (1) CN102567341B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258018A (zh) * 2013-04-27 2013-08-21 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN105094813A (zh) * 2015-07-01 2015-11-25 北京京东尚科信息技术有限公司 用户页面模板的处理方法和装置
CN105376277A (zh) * 2014-08-25 2016-03-02 Tcl集团股份有限公司 一种数据同步方法及装置
CN105426386A (zh) * 2015-10-23 2016-03-23 小米科技有限责任公司 文件同步方法、装置和终端设备
CN106227751A (zh) * 2016-07-14 2016-12-14 青岛海信电器股份有限公司 一种存储文件的扫描方法和扫描设备
CN106372526A (zh) * 2016-08-19 2017-02-01 上海爱数信息技术股份有限公司 一种监控文件变化和同步的方法及系统
CN111611440A (zh) * 2020-05-01 2020-09-01 山东同智伟业软件股份有限公司 一种快速提升ofd签名、签章及验证的方法
CN111651414A (zh) * 2020-04-17 2020-09-11 福建天泉教育科技有限公司 监控文档被打开的方法、存储介质
US20210029090A1 (en) * 2013-02-12 2021-01-28 Centrify Corporation Method and apparatus for providing secure internal directory service for hosted services

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070027929A1 (en) * 2005-08-01 2007-02-01 Whelan Gary J System, method, and/or computer program product for a file system interface
CN101281543A (zh) * 2008-05-13 2008-10-08 华为技术有限公司 文件同步方法及装置
US20090007105A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Updating Offline Virtual Machines or VM Images
CN101523358A (zh) * 2005-05-09 2009-09-02 微软公司 文件系统目录的快速、可靠同步

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523358A (zh) * 2005-05-09 2009-09-02 微软公司 文件系统目录的快速、可靠同步
US20070027929A1 (en) * 2005-08-01 2007-02-01 Whelan Gary J System, method, and/or computer program product for a file system interface
US20090007105A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Updating Offline Virtual Machines or VM Images
CN101281543A (zh) * 2008-05-13 2008-10-08 华为技术有限公司 文件同步方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210029090A1 (en) * 2013-02-12 2021-01-28 Centrify Corporation Method and apparatus for providing secure internal directory service for hosted services
US11750561B2 (en) * 2013-02-12 2023-09-05 Delinea Inc. Method and apparatus for providing secure internal directory service for hosted services
CN103258018B (zh) * 2013-04-27 2016-08-10 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN103258018A (zh) * 2013-04-27 2013-08-21 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN105376277A (zh) * 2014-08-25 2016-03-02 Tcl集团股份有限公司 一种数据同步方法及装置
CN105094813A (zh) * 2015-07-01 2015-11-25 北京京东尚科信息技术有限公司 用户页面模板的处理方法和装置
CN105094813B (zh) * 2015-07-01 2018-07-06 北京京东尚科信息技术有限公司 用户页面模板的处理方法和装置
CN105426386A (zh) * 2015-10-23 2016-03-23 小米科技有限责任公司 文件同步方法、装置和终端设备
CN106227751A (zh) * 2016-07-14 2016-12-14 青岛海信电器股份有限公司 一种存储文件的扫描方法和扫描设备
CN106372526A (zh) * 2016-08-19 2017-02-01 上海爱数信息技术股份有限公司 一种监控文件变化和同步的方法及系统
CN106372526B (zh) * 2016-08-19 2019-08-02 上海爱数信息技术股份有限公司 一种监控文件变化和同步的方法及系统
CN111651414A (zh) * 2020-04-17 2020-09-11 福建天泉教育科技有限公司 监控文档被打开的方法、存储介质
CN111611440A (zh) * 2020-05-01 2020-09-01 山东同智伟业软件股份有限公司 一种快速提升ofd签名、签章及验证的方法

Also Published As

Publication number Publication date
CN102567341B (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN102567341A (zh) 一种实现软件内外目录同步的方法和系统
US10242023B2 (en) Programming model for synchronizing browser caches across devices and web services
US10275355B2 (en) Method and apparatus for cleaning files in a mobile terminal and associated mobile terminal
US7660808B2 (en) Automatically indexing a collection of files of a selected type
US7680875B1 (en) Markers for cached objects
US9286307B2 (en) Document management apparatus improved in efficiency of deletion of files, method of controlling the same, and storage medium
US20110022584A1 (en) Database management system and method
US20060037079A1 (en) System, method and program for scanning for viruses
DE112012002106T5 (de) Vorausschauendes Malware Scannen
CN104199684B (zh) 浏览器冷启动的实现方法及装置
WO2015103997A1 (zh) 一种基于关键词检索的网络爬虫调度方法及系统
CN110417873B (zh) 一种实现记录网页交互操作的网络信息提取系统
US7529771B2 (en) Method of and apparatus for gathering information, system for gathering information, and computer program
AU2007243790B2 (en) Contextual search of a collaborative environment
JP2002202861A5 (zh)
CN103077196A (zh) 一种从公网web网站到内网数据库的访问方法
US20140207833A1 (en) File opening method, apparatus, and terminal
CN102279892A (zh) 临时文件清理方法及系统
US20070041381A1 (en) Information processing apparatus and grouping method
US20020083463A1 (en) Method and system for presenting a video stream of a video streaming device
US7703082B2 (en) Controlling user intervention in a multi-processing computer system
JP2010086075A (ja) 検索装置、情報処理装置、検索方法、プログラム及び記録媒体
US9223768B2 (en) Document management apparatus and document management method
CN111045787A (zh) 一种快速继续实验方法及系统
JP2010128675A (ja) 検索装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190812

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.