基于windows的一种文件状态快速检测方法技术

技术编号:36829494 阅读:16 留言:0更新日期:2023-03-12 01:43
本发明专利技术属于windows系统技术领域,具体涉及基于windows的一种文件状态快速检测方法,解决了现有技术中存在文件不兼容、文件被占用无法处理的问题,包括如下步骤:步骤一:创建句柄检索线程并进行全局检索内容管理系统客户端内的句柄占用情况;步骤二:通过检索到的所有句柄标识;步骤三:通过步骤二中得到的句柄的详细信息;步骤四:过滤句柄信息后检索到目标文件的句柄信息。本发明专利技术基于Windows内核机制,结合进程和文件类型过滤策略;在提高兼容性的同时,也提高了准确性和速度,本申请涉及的Windows内核机制主要有内核对象模型,其中包括操作系统的进程对象模型和数据结构,文件对象模型和数据结构。对象模型和数据结构。对象模型和数据结构。

【技术实现步骤摘要】
基于windows的一种文件状态快速检测方法


[0001]本专利技术涉及windows系统
,具体为基于windows的一种文件状态快速检测方法。

技术介绍

[0002]目前,在基于C/S架构的内容管理系统中,如何保证被管控文件在用户端被多用户处理时文件内容的一致性,成为业界面对的重要问题。目前常见的方式是对文件实行单用户独占式处理,即受管控文件在用户端被某一用户修改时锁定文件,内容管理系统内其他用户无法同时修改该文件。为了实现这一方式,需要能够及时、准确的判断内容管理系统内文件在用户端的实时状态。
[0003]目前用户端的文件状态检索方式,主要是基于模拟虚拟路径的驱动程序,通过驱动程序记录文件的打开、关闭事件;这种方法主要存在两个问题:1、引入驱动层造成和其它基于驱动实现的文件加密等技术存在不兼容;2、打开文件的应用程序关闭后存在文件被驱动程序占用的情况;造成文件已经被用户处理完毕,却不能从锁定状态释放;内容管理系统内的其他用户无法继续处理该文件。3、在驱动层添加的业务代码,会直接影响操作文件时的响应速度,造成访问文件的速度受到影响;基于以上原因,基于驱动记录的方式统计文件状态信息不能满足兼容、准确、快速的目的。

技术实现思路

[0004]本专利技术解决的技术问题是提供基于windows的一种文件状态快速检测方法,解决了文件不兼容、文件被占用无法处理的问题。
[0005]为解决上述技术问题,本专利技术提供如下技术方案:基于windows的一种文件状态快速检测方法,包括如下步骤:
[0006]步骤一:创建句柄检索线程并进行全局检索内容管理系统客户端内的句柄占用情况,根据句柄的占用信息来确定文件的修改状态;
[0007]步骤二:通过检索到的所有句柄标识,遍历句柄被占用的进程,查询到句柄的详细信息;
[0008]步骤三:通过步骤二中得到的句柄的详细信息,开始对句柄信息进行多级过滤以匹配在管理范围文件内的句柄信息;
[0009]步骤四:过滤句柄信息后检索到目标文件的句柄信息,以此作为基础数据,提供对文件进行锁定或其他操作的支持。
[0010]优选的,所述步骤一中获取的句柄数量为48万

52万。
[0011]优选的,所述步骤三中多级过滤并定位文件的时间为20ms

60ms。
[0012]优选的,所述步骤三中多级过滤的具体操作是:
[0013]根据动态进程过滤名称,第一次过滤句柄信息;
[0014]跨进程句柄详细信息查询,根据句柄类型进行第二次过滤;
[0015]根据文件路径信息,进行句柄第三次过滤。
[0016]与相关技术相比较,本专利技术具有如下有益效果:
[0017]本专利技术主要基于Windows内核机制,结合进程和文件类型过滤策略;在提高兼容性的同时,也提高了准确性和速度,本申请涉及的Windows内核机制主要有内核对象模型,其中包括操作系统的进程对象模型和数据结构,文件对象模型和数据结构,涉及的过滤策略主要有过滤进程名单动态更新和文件类型匹配策略;
[0018]用户端文件的状态信息,作为内容管理系统的基础数据,为保证同一文件、同一时间只能够由系统内同一用户进行修改,提供了重要的数据支撑和依据;为避免所管理数据产生不一致性提供了有效的方法;
[0019]1、兼容性高:完全基于操作系统内核机制,避免引入驱动层导致的兼容性问题;
[0020]2、准确性高:操作系统内核文件对象机制,确保文件状态记录准确;
[0021]3、速度快:多重过滤技术,快速定位所需检索的文件状态。
[0022]为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
[0023]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为本申请根据句柄信息获取文件状态的原理流程示意图。
[0025]图2为本申请根据句柄信息获取文件状态的具体流程示意图。
具体实施方式
[0026]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]请参阅图1

2,基于windows的一种文件状态快速检测方法,包括如下步骤:步骤一:创建句柄检索线程并进行全局检索内容管理系统客户端内的句柄占用情况,根据句柄的占用信息来确定文件的修改状态,获取的句柄数量约为50万;步骤二:在Windows平台进程的数据结构中,记录有进程所占用的句柄的详细信息。因为操作系统在实现进程模型时,为了安全因素,每个进程使用的句柄信息无法在其他进程进行直接查询,通过检索到的所有句柄标识,遍历句柄被占用的进程,查询到句柄的详细信息;步骤三:通过步骤二中得到的句柄的详细信息,开始对句柄信息进行多级过滤以匹配在管理范围文件内的句柄信息,多级过滤并定位文件的时间为20ms

60ms,多级过滤的具体操作是:根据动态进程过滤名称,第一次过滤句柄信息;跨进程句柄详细信息查询,根据句柄类型进行第二次过滤;根据文件路径信息,进行句柄第三次过滤。
[0028]本实施例中,通过内容管理系统客户端,应用本申请所描述的技术实现文件状态
信息的有效判断,所描述的实例功能,范围仅限于涉及本申请的技术方面;
[0029]步骤一中创建的主线程用于其它业务流程,句柄检索线程全局检索系统内句柄占用情况:句柄是Windows操作系统提供的用于标识资源的标识符,句柄可以在操作系统全局范围内唯一标识单个资源,文件作为操作系统的一种资源,在对其进行修改前,必须先获取到对应文件的句柄;
[0030]步骤二中在Windows平台进程的数据结构中,记录有进程所占用的句柄的详细信息。因为操作系统在实现进程模型时,为了安全因素,每个进程使用的句柄信息无法在其他进程进行直接查询,本实施例为了实现对句柄信息的查询,需要对占用相应句柄的进程采用间接查询的方法;
[0031]步骤三中多级过滤的目的,是匹配在管理范围内文件的句柄信息;如果不进行过滤会造成定位文件句柄的时间达到秒级,本实例通过多级过滤目前可以把时间降低到几十毫秒。
[0032]以上所述仅为本专利技术的实施例,并非因此限制本专利技术的专利范围,凡是利用本专利技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的
,均同理包括在本专利技术的专利保护范围内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于windows的一种文件状态快速检测方法,其特征在于,包括如下步骤:步骤一:创建句柄检索线程并进行全局检索内容管理系统客户端内的句柄占用情况,根据句柄的占用信息来确定文件的修改状态;步骤二:通过检索到的所有句柄标识,遍历句柄被占用的进程,查询到句柄的详细信息;步骤三:通过步骤二中得到的句柄的详细信息,开始对句柄信息进行多级过滤以匹配在管理范围文件内的句柄信息;步骤四:过滤句柄信息后检索到目标文件的句柄信息,以此作为基础数据,提供对文件进行锁定或其他操作的支持。2.根据权利要求1所述的基于windows的一种文件状态...

【专利技术属性】
技术研发人员:程贝贝李建星
申请(专利权)人:上海鸿翼软件技术股份有限公司
类型:发明
国别省市:

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

1