一种用于存储聊天工具中传输文件的方法及系统与流程

文档序号:20917003发布日期:2020-05-29 13:39阅读:289来源:国知局
一种用于存储聊天工具中传输文件的方法及系统与流程

本发明涉及信息处理技术领域,并且更具体地,涉及一种用于存储聊天工具中传输文件的方法及系统。



背景技术:

微信作为目前国内最大的社交软件,注册用户超过十亿。其丰富的功能,广受用户好评。除了社交属性,微信还可以传输文件,方便编辑,并支持pc端登陆,因此越来越多的用户选择微信用于日常办公。

但是,目前pc端登陆微信传输文件的过程中,会遇到文件重复保存的问题。比如,用户a在某个微信群中,如果群中其他人多次上传同一份文件,该文件会在微信客户端生成的指定路径下存储多份。如此一来,不仅导致文件反复存储浪费了磁盘空间。对于有些经过编辑后上传的同名文件,重复文件名过多,也不便于用户区分哪个文件是自己需要的,从而给用户造成了不便。



技术实现要素:

针对上述问题,本发明提出了一种用于存储聊天工具中传输文件的方法,包括:

获取聊天工具的基本信息,根据基本信息生成文件哈希状态表;

在启动聊天工具并登陆聊天工具后,将所述哈希状态表加载至聊天工具所在平台的内存;

获取聊天工具使用用户传输的多个文件的文件信息,对多个文件的文件信息,进行核查,核实是否出现重复文件,若未出现重复文件,对传输的多个文件的文件信息写入哈希状态表,若出现重复文件,对重复文件中的任意一个文件的文件信息和未出现重复传输的多个文件的文件信息写入哈希状态表,并对写入哈希状态表的传输的多个文件进行存储;

对哈希状态表中写入的每个传输的文件的文件信息,进行处理,生成每个文件的哈希值,并将每个文件的哈希值写入哈希状态表;

获取聊天工具传输的新文件,获取新文件的文件信息,对文件信息进行处理,生成新文件的哈希值,查找哈希状态表中是否存在与新文件的哈希值相同的文件哈希值,当哈希状态表中不存在与新文件的哈希值相同的文件哈希值,对新文件的哈希值和新文件的文件信息写入哈希状态表,并对哈希状态表进行更新,对写入哈希状态表的新文件进行存储。

可选的,当哈希状态表中存在与新文件的哈希值相同的文件哈希值时,确定新文件的文件信息和哈希值相同的文件信息是否一致,若不一致,将新文件的文件信息写入哈希状态表,并对文件进行存储;

若新文件的文件信息和哈希值相同的文件信息一致,对新文件不进行存储。

可选的,文件信息,包括:文件类型、文件名和文件存储路径。

可选的,文件的存储的路径、存储的方式和存储的位置是一致的。

可选的,聊天工具关闭后,将哈希状态表存储至聊天工具所在平台的内存。

本发明还提出了一种用于存储聊天工具中传输文件的系统,包括:

初始化模块,获取聊天工具的基本信息,根据基本信息生成文件哈希状态表;

加载模块,在启动聊天工具并登陆聊天工具后,将所述哈希状态表加载至聊天工具所在平台的内存;

记录模块,获取聊天工具使用用户传输的多个文件的文件信息,对多个文件的文件信息,进行核查,核实是否出现重复文件,若未出现重复文件,对传输的多个文件的文件信息写入哈希状态表,若出现重复文件,对重复文件中的任意一个文件的文件信息和未出现重复传输的多个文件的文件信息写入哈希状态表,并对写入哈希状态表的传输的多个文件进行存储;

处理模块,对哈希状态表中写入的每个传输的文件的文件信息,进行处理,生成每个文件的哈希值,并将每个文件的哈希值写入哈希状态表;

存储模块,获取聊天工具传输的新文件,获取新文件的文件信息,对文件信息进行处理,生成新文件的哈希值,查找哈希状态表中是否存在与新文件的哈希值相同的文件哈希值,当哈希状态表中不存在与新文件的哈希值相同的文件哈希值,对新文件的哈希值和新文件的文件信息写入哈希状态表,并对哈希状态表进行更新,对写入哈希状态表的新文件进行存储。

可选的,存储模块,还用于确定当哈希状态表中存在与新文件的哈希值相同的文件哈希值时,确定新文件的文件信息和哈希值相同的文件信息是否一致,若不一致,将新文件的文件信息写入哈希状态表,并对文件进行存储;

若新文件的文件信息和哈希值相同的文件信息一致,对新文件不进行存储。

可选的,文件信息,包括:文件类型、文件名和文件存储路径。

可选的,文件的存储的路径、存储的方式和存储的位置是一致的。

可选的,聊天工具关闭后,将哈希状态表存储至聊天工具所在平台的内存。

本发明解决了同一文件本地重复编辑多次,不便于用户识别和查找的问题,解决了聊天工具被迫接收大量自身本不需要的重复文件的问题,减少了文件重复传输带来的带宽浪费,尤其是对大文件的传输情况,改善更为明显,降低了pc端和聊天工具服务端重复存储文件导致的磁盘空间浪费。

附图说明

图1为本发明一种用于存储聊天工具中传输文件的方法流程图;

图2为本发明一种用于存储聊天工具中传输文件的系统结构图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

本发明提出了一种用于存储聊天工具中传输文件的方法,如图1所示,包括:

获取聊天工具的基本信息,根据基本信息生成文件哈希状态表;

在启动聊天工具并登陆聊天工具后,将所述哈希状态表加载至聊天工具所在平台的内存;

获取聊天工具使用用户传输的多个文件的文件信息,对多个文件的文件信息,进行核查,核实是否出现重复文件,若未出现重复文件,对传输的多个文件的文件信息写入哈希状态表,若出现重复文件,对重复文件中的任意一个文件的文件信息和未出现重复传输的多个文件的文件信息写入哈希状态表,并对写入哈希状态表的传输的多个文件进行存储;

文件信息,包括:文件类型、文件名和文件存储路径。

文件的存储的路径、存储的方式和存储的位置是一致的。

对哈希状态表中写入的每个传输的文件的文件信息,进行处理,生成每个文件的哈希值,并将每个文件的哈希值写入哈希状态表;

获取聊天工具传输的新文件,获取新文件的文件信息,对文件信息进行处理,生成新文件的哈希值,查找哈希状态表中是否存在与新文件的哈希值相同的文件哈希值,当哈希状态表中不存在与新文件的哈希值相同的文件哈希值,对新文件的哈希值和新文件的文件信息写入哈希状态表,并对哈希状态表进行更新,对写入哈希状态表的新文件进行存储。

当哈希状态表中存在与新文件的哈希值相同的文件哈希值时,确定新文件的文件信息和哈希值相同的文件信息是否一致,若不一致,将新文件的文件信息写入哈希状态表,并对文件进行存储;

若新文件的文件信息和哈希值相同的文件信息一致,对新文件不进行存储。

聊天工具关闭后,将哈希状态表存储至聊天工具所在平台的内存。

本发明提出的聊天工具,为现在使用较多的工具,若微信,qq等聊天工具;

下面结合实施例对本发明进行进一步说明;

为了便于描述,假设微信群中有用户a、b、c三人,a用户上传文件,b用户再次上传同一文件,c用户编辑后上传。则文件管理方案实施过程如下:

a发送word文档file1(假设该文件位于d:/)到微信群,b和c用户的微信特定文件夹下会收到该文件file1(为了便于描述,假设特定路径是c:/weixin);

a用户微信客户端(wx-client)解析文件,通过哈希算法获得文件内容哈希值hash1-a,该值作为哈希表key值,并将文件信息存储至链表结构,文件信息包括(文件名、文件类型、文件存储路径),即将(file1、doc、c:/file1)写入文件状态表linkedhashmap-a;

b用户微信客户端,将hash1-a作为哈希表key值,并将(file1、doc、c:/weixin/file1)写入文件状态表linkedhashmap-b;c用户微信客户端,将hash1-a作为哈希表key值,并将(file1、doc、c:/weixin/file1)写入文件状态表linkedhashmap-c;

b用户不修改文件file1,直接将该文件file1,再次发送到微信群,b用户微信客户端解析文件内容,获得哈希值hash2-b,并以hash2-b作为哈希表key值,扫描文件状态表linkedhashmap-b,由于hash1-a与hash2-b结果一致,则b用户微信客户端可以检索到该文件file1的记录,并且文件的名称和类型都与当前上传的文件file1一致,此时,b用户的pc端不再生成一遍该文件file1(以目前的微信文件管理机制,会重复生成一个同样的文件file1-1),同理,a用户和c用户的微信客户端在扫描自己的状态表linkedhashmap-a和linkedhashmap-c时,发现也有同样同一个文件名称,且文件名称和文件类型都与当前即将接收的文件一致,则a和c用户的微信客户端不在本地重复生成该文件file1;;

c用户将该文件编辑,文件名称不变,还是file1,但是文件哈希值变为hash2-c,并将该文件发送到微信群;

c用户的微信客户端将本地文件状态表linkedhashmap-c的数据变更,原key值hash1-a哈希值hash3-c,文件信息不变;

a和b用户微信客户端收到该文件,以hash3-c为key值,在本地linkedhashmap-a和linkedhashmap-b中检索文件,由于状态表中不存在该哈希值,因此判断该文件为新文件,需要接收该文件,a和b用户接收file1,在c:/weixin/下保存,同时将a的状态表linkedhashmap-a新增一条记录,key值为hash3-c,文件信息为(file1,doc,c:/weixin/file1);将b的状态表linkedhashmap-b新增一条记录,key值为hash3-c,文件信息为(file1,doc,c:/weixin/file1)。

本发明还提出了一种用于存储聊天工具中传输文件的系统200,包括:

初始化模块201,获取聊天工具的基本信息,根据基本信息生成文件哈希状态表;

加载模块202,在启动聊天工具并登陆聊天工具后,将所述哈希状态表加载至聊天工具所在平台的内存;

记录模块203,获取聊天工具使用用户传输的多个文件的文件信息,对多个文件的文件信息,进行核查,核实是否出现重复文件,若未出现重复文件,对传输的多个文件的文件信息写入哈希状态表,若出现重复文件,对重复文件中的任意一个文件的文件信息和未出现重复传输的多个文件的文件信息写入哈希状态表,并对写入哈希状态表的传输的多个文件进行存储;

处理模块204,对哈希状态表中写入的每个传输的文件的文件信息,进行处理,生成每个文件的哈希值,并将每个文件的哈希值写入哈希状态表;

存储模块205,获取聊天工具传输的新文件,获取新文件的文件信息,对文件信息进行处理,生成新文件的哈希值,查找哈希状态表中是否存在与新文件的哈希值相同的文件哈希值,当哈希状态表中不存在与新文件的哈希值相同的文件哈希值,对新文件的哈希值和新文件的文件信息写入哈希状态表,并对哈希状态表进行更新,对写入哈希状态表的新文件进行存储。

存储模块205,还用于确定当哈希状态表中存在与新文件的哈希值相同的文件哈希值时,确定新文件的文件信息和哈希值相同的文件信息是否一致,若不一致,将新文件的文件信息写入哈希状态表,并对文件进行存储;

若新文件的文件信息和哈希值相同的文件信息一致,对新文件不进行存储。

文件信息,包括:文件类型、文件名和文件存储路径。

文件的存储的路径、存储的方式和存储的位置是一致的。

聊天工具关闭后,将哈希状态表存储至聊天工具所在平台的内存。

本发明解决了同一文件本地重复编辑多次,不便于用户识别和查找的问题,解决了聊天工具被迫接收大量自身本不需要的重复文件的问题,减少了文件重复传输带来的带宽浪费,尤其是对大文件的传输情况,改善更为明显,降低了pc端和聊天工具服务端重复存储文件导致的磁盘空间浪费。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1