1.本技术涉及计算机技术领域,特别涉及一种文件处理方法。本技术同时涉及一种文件处理装置、一种计算设备,以及一种计算机可读存储介质。
背景技术:
2.随着互联网技术以及计算机技术的发展,人们对计算机软件的需求不断提高,许多机构需要不断地提高计算机软件的能力,以满足人们日益增长的需求。但在此过程中,使得计算机软件的文件数量过多,进而导致该文件的文件名过多的占用内存资源。
3.现有技术中,许多机构通过使用占用量较小的哈希值,代替内存占用量较大的文件名的方式,达到节省内存资源的目的。然而,许多计算机软件的文件系统是基于字符串打造的,如果使用哈希值替代文件名,则需要对整个文件系统进行改造,使得该文件系统能够与哈希值兼容,进而造成大量的时间成本和人工成本的浪费。
技术实现要素:
4.有鉴于此,本技术实施例提供了一种文件处理方法,以解决现有技术中存在的技术缺陷。本技术实施例同时提供了一种文件处理装置,一种计算设备,以及一种计算机可读存储介质。
5.根据本技术实施例的第一方面,提供了一种文件处理方法,包括:
6.将目标文件的初始文件标识通过预设算法处理为目标文件标识;
7.在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;
8.其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。
9.根据本技术实施例的第二方面,提供了一种文件处理装置,包括:
10.处理模块,被配置为将目标文件的初始文件标识通过预设算法处理为目标文件标识;
11.转换模块,被配置为在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;
12.其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。
13.根据本技术实施例的第三方面,提供了一种计算设备,包括:
14.存储器和处理器;
15.所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述文件处理方法的步骤。
16.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算
机可执行指令,该指令被处理器执行时实现所述文件处理方法的步骤。
17.根据本技术实施例的第五方面,提供了一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述文件处理方法的步骤。
18.本技术提供的文件处理方法包括,将目标文件的初始文件标识通过预设算法处理为目标文件标识;在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。
19.具体地,所述方法通过预设算法将目标文件的初始文件标识处理为内存占用较小的目标文件标识,从而避免了初始文件标识过多占用内存资源的问题,并且,基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串,从而解决了目标文件标识与文件系统的不兼容问题,避免了对整个文件系统进行改造过程中浪费的时间成本和人工成本。
附图说明
20.图1是本技术一实施例提供的一种文件处理方法的流程图;
21.图2是本技术一实施例提供的一种应用于对哈希值进行加密场景的文件处理方法的处理流程图;
22.图3是本技术一实施例提供的一种文件处理装置的结构示意图;
23.图4是本技术一实施例提供的一种计算设备的结构框图。
具体实施方式
24.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
25.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
27.首先,对本发明一个或多个实施例涉及的名词术语进行解释。
28.哈希:是指是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,例如将一个大的集合映射到一个小的集合;在实际应用中,该固定长度的输出可能与历史变换成的输出相同,在两个相同的情况下,则确定该固定长度的输出产生冲突。
29.二进制状态压缩:将一组抽象的状态用一个二进制表示的整数进行压缩存储。
30.随着互联网技术以及计算机技术的发展,人们对计算机软件的需求不断提高,许多机构需要不断地提高计算机软件的能力,以满足人们日益增长的需求。从而使得计算机软件的文件数量过多,导致该文件的文件名过多的占用内存资源。
31.例如,该计算机软件可以理解为计算机游戏。计算机游戏的文件和下载系统对真实文件名进行存储和传播的过程中,一个文件名的内存中往往需要较高的内存空间,例如60b以上的内存空间;并且,计算机游戏的文件数量相对较高,例如文件数量可以达到4*10^7的数量级。基于此,该文件的文件名需要2gb以上的内存空间。这是一个难以接受的内存大小,现行的很多游戏玩家电脑无法运行。
32.因此,本说明提供的一种方式,可以对一个真实文件名使用预设算法进行处理,将会得到一个无符号64位的整数,例如,该预设算法可以为哈希算法;通过将文件名(60b的字符串)替换成一个整数(哈希值),从而能够大幅度减少使用内存。但是,计算机游戏的文件和下载系统原本是基于字符串打造的,如果使用哈希值替代,这和原有的以字符串为基础搭建的框架不兼容,因此,需要花费大量的时间成本和人工成本对整份文件系统进行改造,从而产生巨大的人工时间成本。
33.基于此,在本技术中,提供了一种文件处理方法。本技术同时涉及一种文件处理装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
34.参见图1,图1示出了根据本技术一实施例提供的一种文件处理方法的流程图,具体包括以下步骤:
35.步骤s102:将目标文件的初始文件标识通过预设算法处理为目标文件标识。
36.在实际应用中,本技术提供的文件处理方法可以应用于计算机软件的文件系统中,该计算机软件可以根据实际应用场景进行设置,本技术对此不做具体限定,例如,计算机游戏的文件系统。
37.其中,该目标文件可以理解为需要将初始文件标识转换为目标文件标识的文件,该目标文件可以为计算机软件的文件,例如,计算机游戏、计算机购物应用等软件的文件。对应的,该初始文件标识可以理解为目标文件的文件名,该初始文件标识的类型可以为字符类型,例如,该初始文件标识可以为“e:\**游戏\4545600995”。该目标文件标识可以理解为通过预设算法对文件名进行处理获得的整数。在初始文件标识为一个文件名、目标文件标识为一个整数的情况下,该预设算法可以理解为任意一种能够实现将一个文件名转换为一个整数的算法,本技术对此不做具体限制,例如,哈希算法。
38.具体地,文件系统能够通过预设算法对目标文件的初始文件标识进行转换处理,获得该目标文件对应的目标文件标识。
39.进一步地,本技术提供的文件处理方法中,所述预设算法为哈希算法;
40.相应地,所述将目标文件的初始文件标识通过加密算法处理为目标文件标识,包括:
41.将目标文件的初始文件标识通过哈希算法处理为目标文件标识。
42.其中,在该预设算法为哈希算法的情况下,该目标文件标识可以理解为通过哈希算法对文件名处理获得的哈希值,该哈希值可以为一个无符号64位的整数、或一个非“0”的无符号64位的整数。
43.具体地,文件系统能够通过哈希算法对目标文件的初始文件标识进行哈希处理,
获得该目标文件对应的目标文件标识。
44.下面以本技术提供的文件处理方法应用于计算机游戏的文件系统场景为例,对将目标文件的初始文件标识通过哈希算法处理为目标文件标识做进一步说明。其中,目标文件可以为计算机游戏的游戏文件,初始文件标识可以为游戏文件的文件名,该文件名的类型为字符类型;目标文件标识可以理解为对文件名进行哈希获得整数,也即是哈希值。
45.计算机游戏的文件系统可以通过哈希算法对一个文件的文件名(例如“e:\**游戏\4545600995”)进行哈希处理,从将该文件名转换为一个无符号64位的整数(uint64_t)。
46.在实际应用中,该整数可以是一个非“零”的整数。也即是说,哈希算法对文件名进行哈希处理的过程中,并不会将该文件名转换为一个为“0”的整数。
47.步骤s104:在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串。
48.其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。历史文件标识可以理解为文件系统通过哈希算法对历史文件的文件名进行哈希处理后获得的哈希值。
49.目标文件标识的关联信息可以理解为与该目标文件标识相关联的信息,包括但不限于该目标文件标识的属性信息、针对该目标文件标识的字符尺寸规则等。对应的,该目标文件标识的属性信息包括但不限于目标文件标识的类型、该目标文件标识所占用的内存大小等信息。该字符尺寸规则可以理解为基于字符构建的文件系统中对一个字符的尺寸的要求,也即是对一个字符的大小的要求。该字符尺寸规则所要求的字符大小可以为一个字符的大小为8位、一个字符的大小为16位等。
50.预设标识规则可以理解为文件系统对字符类型的文件名的命名要求,该预设标识规则可以根据实际应用场景进行设置,本说明书对此不做具体限定,例如,该预设标识规则可以为对字符类型的文件名中的特定字符进行更新、或字符类型的文件名中不能包含特定字符等;其中,该特定字符可以根据实际应用场景进行设置,例如该特定字符可以为字符“0”。
51.目标字符串可以理解为由哈希值转换为的、并且满足预设标识规则的字符串;在预设标识规则为对字符类型的文件名中的字符“0”进行更新的情况下,该目标字符串可以理解为由哈希值转换为的、且对其包含的字符“0”进行更新的字符串。
52.具体地,文件系统在通过哈希算法将目标文件的初始文件标识处理为目标文件标识之后,该文件系统在确定该目标文件标识,与基于哈希算法对历史文件的初始文件标识进行处理后获得的历史文件标识不相同的情况下,基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串。
53.在实际应用中,文件系统通过哈希算法对目标文件的初始文件标识(例如,大小为60b的文件名)进行哈希,并获得目标文件标识(例如,大小为8b的哈希值)的过程中,由于该过程是将一个大的集合映射到一个小的集合中,因此,获得的哈希值可能会与历史获得的哈希值相同,也即是获得的哈希值与历史获得的哈希值产生了冲突。在此情况下,该文件系统中会存在两个相同的哈希值,进而会导致文件系统在运行过程中出现错误。
54.基于此,本技术提供的文件处理方法中,在目标文件标识与历史文件标识不相同的情况下,则基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目
标字符串,从而在降低了文件名对内存过多占用的同时,也避免了哈希值与文件系统的不兼容问题。
55.而在目标文件标识与历史文件标识相同的情况下,则确定目标文件标识与历史文件标识产生冲突,从而停止将目标文件标识转换为目标字符串的步骤,避免文件系统在运行过程中出现错误。而文件系统在停止将目标文件标识转换为目标字符串之后,继续使用初始文件标识(例如,大小为60b的文件名)对目标文件(例如,游戏文件)进行存储和传播。
56.进一步地,在本技术提供的文件处理方法中,所述基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串,具体包括步骤一至步骤三。
57.步骤一:从所述目标文件标识的关联信息中,确定所述目标文件标识的属性信息以及字符尺寸规则。
58.具体地,文件系统在确定目标文件标识与历史文件标识不相同之后,从该目标文件标识的关联信息中,确定出该目标文件标识的属性信息以及针对该目标文件标识的字符尺寸规则。
59.步骤二:基于所述目标文件标识的属性信息以及字符尺寸规则,将所述目标文件标识转换为初始字符串。
60.具体地,文件系统在确定出目标文件标识对应的属性信息和字符尺寸规则之后,能够基于该属性信息和字符尺寸规则将该目标文件标识转换为初始字符串。
61.具体实施过程中,所述基于所述目标文件标识的属性信息以及字符尺寸规则,将所述目标文件标识转换为初始字符串,包括:
62.基于所述目标文件标识的属性信息以及字符尺寸规则,确定初始字符数量;
63.将所述目标文件标识转换为二进制数据,并基于所述初始字符数量对所述二进制数据进行划分,获得与所述初始字符数量相同的二进制数据集合;
64.将所述二进制数据集合转换为初始字符,并基于所述初始字符构建初始字符串。
65.其中,在目标文件标识的属性信息为该目标文件标识所占用的内存大小,该字符尺寸规则为对字符的大小的要求情况下,该初始字符数量可以理解为在字符尺寸规则的要求下能够将该目标文件标识转换为的初始字符的数量;二进制集合可以理解为包含二进制数据的集合;初始字符可以理解为初始字符串中包含的字符。
66.具体地,在确定出目标文件标识的属性信息以及字符尺寸规则之后,该文件系统能够基于该目标文件标识的属性信息,以及针对该目标文件标识的字符尺寸规则,确定出该目标文件标识能够被转换为的初始字符数量。之后,该文件系统能够将该目标文件标识转换为二进制数据,并基于该初始字符数量对该二进制数据进行划分,获得数量与该初始字符数量相同的二进制数据集合,其中,该二进制数据集合中包含二进制数据,且该二进制数据集合的大小与字符尺寸规则要求的一个字符的大小相同。
67.在确定出二进制数据集合之后,将该二进制数据集合转换为初始字符,并基于该初始字符构建出初始字符串。
68.沿用上例,其中,该属性信息可以为哈希值的大小;该字符尺寸规则所要求的字符大小为一个字符为8位。
69.基于此,文件系统在确定出有游戏文件的文件名转换为的哈希值为一个无符号64
位整数(uint64_t)的情况下,基于一个字符为8位的字符尺寸规则,确定出该哈希值能够转换成8个字符。之后,文件系统将该哈希值转换为一个64位的二进制数据,其中,该二进制数据可以为“00010100,00000000,00011110,00010111,11111111,00000010,00000100,00000000”,并按照8位二进制数据为1个集合的方式,从前到后的对二进制数据进行划分,获得8个二进制数据集合。该8个二进制数据集合可以为“00010100”、“00000000”、“00011110”、“00010111”“11111111”、“00000010”、“00000100”、“00000000”。
70.在获得8个二进制数据集合之后,将每个二进制数据集合转换为一个字符,可以为将“00010100”转换为字符“20”、“00000000”转换为字符“0”、“00011110”转换为字符“30”、“00010111”转换为字符“23”、“11111111”转换为字符“255”、“00000010”转换为字符“2”、“00000100”转换为字符“4”、“00000000”转换为字符“0”。并基于该字符构成初始字符串“20,0,30,23,255,2,4,0”。
71.在实际应用中,计算机软件的文件系统可能依赖于字符串(字符类型的文件名)中的特定字符,对字符串的长度、类型进行判断。例如,计算机游戏的文件系统会在每个字符串的尾部,增加一个特定的字符,例如字符“0”;从而基于该字符“0”来判断整个字符串的长度;或者,计算机软件的文件系统会在每个字符串的首部,增加一个特征字符,例如字符“*”,从而基于该字符“*”来判断整个字符串的类型。
72.基于此,当基于目标文件标识转换为初始字符串中存在特定字符时,比如,该初始字符串中存在字符“0”,可能会导致计算机游戏的文件系统对该字符串进行处理的过程中出现错误。
73.因此,本技术提供的文件处理方法,能够基于文件系统针对文件名的预设标识规则,对初始字符串进行处理,具体实现方式参见步骤三。
74.步骤三:基于预设标识规则对所述初始字符串进行更新,获得目标字符串。
75.具体地,文件系统在将目标文件标识转换为初始字符串之后,能够基于该预设标识规则对初始字符串进行更新,从而获得符合预设标识规则要求的目标字符串。
76.进一步地,所述基于预设标识规则对所述初始字符串进行更新,获得目标字符串,包括:
77.确定所述初始字符串中初始字符的字符属性;
78.在所述字符属性满足预设标识规则的情况下,对所述字符属性对应的初始字符进行更新,获得更新字符串;
79.确定所述更新字符串对应的更新状态数据;
80.基于所述更新状态数据以及所述更新字符串,确定目标字符串。
81.其中,该字符属性可以理解为该初始字符串中字符的属性,例如,该字符属性可以为表示初始字符是否为字符“0”的属性;更新字符串可以理解为符合预设标识规则的字符串。本技术提供的文件处理方法能够基于该预设标识规则对初始字符串中的字符进行更新,基于此,该更新状态数据可以理解为记录文件系统对初始字符串中的字符进行更新的数据。
82.具体地,文件系统在获得初始字符串之后,能够获得该初始字符串中的初始字符的字符属性,并在该字符属性满足预设标识规则的情况下,对初始字符串中的、该字符属性对应的初始字符进行更新,从而获得更新字符串。
83.之后,该文件系统确定出记录该更新字符串中字符的更新状态的更新状态数据,并基于该更新状态数据以及更新字符串,构建目标字符串。
84.沿用上例,其中,该预设标识规则可以为对字符串中的字符“0”进行更新。基于此,计算机游戏的文件系统在获得初始字符串“20,0,30,23,255,2,4,0”之后,能够确定出该初始字符串中每个字符的字符属性,并在基于该字符属性确定出初始字符串中存在字符“0”的情况下,计算机游戏的文件系统确定该字符属性满足预设标识规则,并基于该预设标识规则对初始字符串中的字符“0”进行更新,也即是,对初始字符串“20,0,30,23,255,2,4,0”中的第2位和第8位字符进行更新,从而获得更新后的初始字符串,也即是更新字符串。
85.由于计算机游戏的文件系统,是对一个包含8个字符的初始字符串更新,因此,可以用一个字节(2^8bit)大小的字符值(也称为存储值),来记录下文件系统对初始字符串的更新。在本例中,文件系统是对初始字符串“20,0,30,23,255,2,4,0”中的第2位和第8位字符进行更新,因此,确定一个位数与初始字符串中的初始字符对应的二进制数据0b********;将初始字符串中更新后的初始字符,在二进制数据中对应的位数设为“1”,将初始字符串没有更新的初始字符,在二进制数据中对应的位数设为“0”,基于此,文件系统对初始字符串“20,0,30,23,255,2,4,0”中的第2位和第8位字符进行更新之后,获得更新状态数据“0b01000001(即十进制65)”,通过“0b01000001(即十进制65)”记录下文件系统对初始字符串的修改(更新)。
86.计算机游戏的文件系统在确定出更新字符串以及更新状态信息之后,将该更新状态信息“0b01000001”的十进制表示,即字符“65”加入到更新字符串中,从而获得目标字符串。
87.在实际应用中,通过一个字节大小(2^8bit)的字符值,即更新状态数据;存储对初始字符串的修改(更新)信息,这就叫做二进制下的状态压缩。
88.在具体实施过程中,由于字符串中存在字符“0”时会导致文件系统的错误识别,因此,通过将字符串中的字符“0”替换为字符“1”,并通过一个字符值记录下对文件系统的修改信息,从而避免了文件系统的错误识别的问题。
89.但是,该字符值也可能为字符“0”,比如,在字符串中不存在字符“0”的情况下,不需要对该字符串进行修改,因此,该记录修改信息的字符值就成了字符“0”,在此情况下,如果把这个为字符“0”的字符值加入到更新字符串中,同样会导致文件系统的错误识别的问题。
90.基于此,本技术提供的文件处理方法,考虑到哈希算法只会将文件名转换为一个非“零”的整数(哈希值),因此,在将该哈希值转换为初始字符串并对其进行更新时,不存在记录修改信息的字符值为字符“255”的情况,因此,在字符值为字符“0”的情况下,将该字符值转换为字符“255”,从而避免了将为字符“0”的字符值加入到更新字符串中,导致文件系统的错误识别的问题。
91.本技术提供的文件处理方法中,通过在确定初始字符串中初始字符的字符属性满足预设标识规则的情况下,对字符属性对应的初始字符进行更新,获得更新字符串;并确定出记录更新字符串中每个字符对应的更新状态的更新状态数据;并基于该更新状态数据以及更新字符串,确定目标字符串。从而避免了初始字符串中存在特定字符时,导致文件系统出现错误的问题,提高了文件系统的稳定性。同时,便于文件系统在完成对目标文件的存储
和传播之后,能够基于该更新状态数据将目标字符串还原为目标文件标识。
92.在具体实施过程中,对初始字符串中的字符进行更新的过程,可以为通过特定字符对初始字符串中的字符进行替换,具体实现方式如下。
93.所述对所述字符属性对应的初始字符进行更新,获得更新字符串,包括:
94.通过预设更新字符对所述字符属性对应的初始字符进行替换,获得更新字符串,其中,所述初始字符为所述初始字符串中的字符。
95.其中,该预设更新字符可以根据实际应用场景进行设置,本说明书对此不做具体设置,例如该预设更新字符可以为字符“1”、字符“*”等。
96.沿用上例,其中,该预设更新字符可以为字符“1”。对应的,该预设标识规则可以为将字符串中的字符“0”替换成字符“1”。基于此,计算机游戏的文件系统确定该字符属性满足预设标识规则之后,基于该预设标识规则,将通过字符“1”对初始字符串中的字符“0”进行更新,也即是,将初始字符串“20,0,30,23,255,2,4,0”中的第2位和第8位字符,替换为字符“1”,从而获得更新字符串“20,1,30,23,255,2,4,1”。
97.本说明书实施例中,通过预设更新字符对字符属性对应的初始字符进行替换,从而获得更新字符串,从而避免了初始字符串中存在特定字符时,导致文件系统出现错误的问题,提高了文件系统的稳定性。
98.在实际应用中,在文件系统在获得更新字符串“20,1,30,23,255,2,4,1”之后,能够确定出该更新字符串对应的更新状态信息“0b01000001”,并将该更新状态信息的十进制表示,即字符“65”加入到更新字符串中,从而获得目标字符串,即“65,20,1,30,23,255,2,4,1”。
99.此外,本技术提供的文件处理方法,由于目标字符串为字符类型,而文件系统中的也存在其他类型为字符的字符串,比如,目标文件的初始文件标识也为字符类型,基于此,为了使计算机软件的文件系统能够更方便的区分目标字符串以及其他字符串,避免文件系统的混淆,可以在将目标文件标识转换为目标字符串的过程中,为目标字符串增加一个更新标识,用于表示该字符串是基于目标文件标识转换为的目标字符串。具体实现方式如下。
100.所述基于预设标识规则对所述初始字符串进行更新,获得目标字符串,包括:
101.确定所述更新字符串对应的更新标识;
102.基于所述更新标识、所述更新状态数据以及所述更新字符串,构建目标字符串。
103.其中,更新标识可以理解为标识该字符串为目标字符串的标识,该更新标识可以根据实际应用场景进行设置,本技术对此不做具体限定,例如,该更新标识可以为字符“1”。
104.具体地,在文件系统确定出更新状态数据之后,能够为更新字符串确定对应的更新标识,基于该更新标识、更新状态数据以及更新字符串,共同构建目标字符串。
105.沿用上例,其中,更新字符串可以为“20,1,30,23,255,2,4,1”,更新状态信息可以为“65”,该更新标识可以为字符“1”。基于此,在文件系统确定出更新字符串对应的更新状态数据之后,能够为该更新字符串确定一个字符“1”;并基于该更新字符串“20,1,30,23,255,2,4,1”,更新状态信息“65”以及更新标识“1”,共同构建目标字符串“1,65,20,1,30,23,255,2,4,1”。
106.本说明书实施例中,通过确定更新字符串对应的更新标识,并基于更新标识、更新状态数据以及更新字符串,构建目标字符串,从而便于文件系统能够准确的识别出目标字
符串,避免文件系统的混淆。
107.本技术提供的文件处理方法,通过哈希算法将目标文件的初始文件标识处理为内存占用较小的目标文件标识,从而避免了初始文件标识过多占用内存资源的问题,并且,根据基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串,从而解决了目标文件标识与文件系统的不兼容问题,避免了对整个文件系统进行改造过程中浪费的时间成本和人工成本。
108.在实际应用中,本技术提供的文件处理方法通过上述步骤,通过哈希值转换为字符串代替游戏文件的文件名,从而实现将原有60b的文件名大小优化到了只有10b大小。从而在存储和传播该游戏文件的文件名的过程中,能够大幅度的降低文件名对内存的占用,并且,避免了对文件系统的改造,降低了大量的时间成本和人工成本。
109.其中,本技术提供的文件处理方法中,将目标文件标识转换为目标字符串的操作可以理解为是对目标文件标识进行加密的过程,也即是对基于哈希算法对游戏文件的文件名进行哈希获得哈希值进行加密的过程。
110.进一步的,本技术提供的文件处理方法中,设计了一个兼具时间和空间优势的加密算法,将这个无符号64位的整数,在存储和传播前转换为一个可以与原框架(文件系统)兼容的加密字符串,从而降低文件名对内存的占用,并且,避免了对文件系统的改造。
111.同时,本技术提供的文件处理方法,需要在加密字符串使用或者传播完成后,通过同样具有效率的解密算法将这个加密字符串还原成无符号64位的整数。
112.基于此,本技术提供了一种针对加密字符串的解密方法,具体为:当需要对加密字符串进行解密时,通过去除新增的前两位,也即是更新状态数据以及更新标识;并根据存储值(更新状态数据)记录下的信息,将字符串中被替换成字符“1”的字符改为“\0”,也即是字符“0”,从而完成对加密字符串的还原。
113.基于该方法,可以注意到对哈希值进行加密的时间复杂度为o(8),对加密字符串进行解密的时间复杂度为o(8),虽然对内存的几乎没有额外的增加,却减少了5倍的内存使用量。而对原有的文件系统和下载系统不需要进行改动。但是,这种方法使得每个文件的操作,徒增了o(16)的时间复杂度。
114.基于此,本技术提供的文件处理方法,注意到加密过程的时间复杂度是难以优化的,但是解密过程可以用基于状态压缩,制作一个预处理过的、仅2kb的表来优化到o(1)的时间复杂度,且这个预处理过程使用动态规划优化后只需要几毫秒。从而降低了对每个文件进行操作的时间复杂度,具体实现方式如下。
115.所述将所述目标文件标识转换为目标字符串之后,还包括:
116.确定所述目标字符串的更新状态数据;
117.从还原数据集合中获取所述更新状态数据对应的还原数据;
118.基于所述还原数据对所述目标字符串进行数据还原,获得目标文件标识。
119.其中,该还原数据集合可以理解为存储还原数据的容器,该容器包括但不限于一个表、一个数组或者一个存储器;本说明书对此不做具体限定。在实际应用中,该还原数据集合的大小可以根据实际应用场景进行设置,例如该大小可以为2kb、10kb等。
120.还原数据可以理解为能够将目标字符串还原成目标文件标识的数据,例如,将在将哈希值加密为加密字符串之后,能够将该加密字符串还原成哈希值的数据。
121.具体的,文件系统在将目标文件标识转换为目标字符串之后,当需要将目标字符串转换为目标文件标识的情况下,还能够确定出该目标字符串中包含的更新状态数据,并基于该更新状态数据从还原数据集合中进行查找,其中,该还原数据集合中包含更新状态数据,以及与该更新状态数据对应的还原数据;基于此,则能够从还原数据集合中获取到与更新状态数据对应的还原数据。文件系统在获得还原数据之后,能够基于该还原数据对目标字符串进行数据还原,从而获得目标文件标识。
122.沿用上例,其中,该还原数据集合可以理解为一个包含还原数据的数组。比如,一个uint64_t[256]的数组,在实际应用中,该数组的大小可以为2kb。
[0123]
基于此,文件系统对哈希值进行加密获得加密字符串之后,能够使用该加密字符串进行使用和存储;并且在使用和存储后需要将该加密字符串还原为哈希值的情况下,该文件系统能够获取到该加密字符串中的更新状态数据,即字符“65”;并基于该字符“65”从一个uint64_t[256]的数组中,获取到该字符“65”所对应的还原数据。
[0124]
其中,该数组中包括更新状态数据,且每个更新状态数据对应一个还原数据;基于此,能够基于该更新状态信息,从数组中获得对应的还原数据。
[0125]
在获得还原数据之后,文件系统能够基于该还原数据对目标字符串进行数据还原,从而获得文件系统对游戏文件进行哈希所获得的哈希值。
[0126]
本技术提供的实施例中,通过目标字符串的更新状态数据,从还原数据集合中获取该更新状态数据对应的还原数据;并基于该还原数据对目标字符串进行快速的数据还原,提高了获得目标文件标识的效率,降低了文件系统对目标文件进行操作过程中的时间复杂度。
[0127]
进一步的,在基于该还原数据对目标字符串进行数据还原的过程中,能够仅通过将还原数据与目标字符串进行一次异或运算,即可完成对目标字符串的数据还原,提高了数据还原的效率,具体实现方式如下。
[0128]
所述基于所述还原数据对所述目标字符串进行数据还原,获得目标文件标识,包括:
[0129]
将所述目标字符串中的更新标识以及所述更新状态数据删除;
[0130]
将所述目标字符串转换为二进制数据,并基于所述还原数据对所述二进制数据进行异或运算,获得运算后的所述二进制数据;
[0131]
基于运算后的所述二进制数据获得目标文件标识。
[0132]
具体的,文件系统在确定更新文件标识对应的还原数据之后,能够将该目标字符串中的更新标识以及更新状态数据删除,并将删除更新标识和更新状态数据的目标字符串,转换为二进制数据。并基于该还原数据对该二进制数据进行按位异或运算,从而获得运算后的二进制数据。之后文件系统将该运算后的二进制数据转换为目标文件标识,从而完成对目标字符串的解密。
[0133]
沿用上例,其中,该更新状态数据可以为字符“65”,该还原数据可以为“00000000,00000001,00000000,00000000,00000000,00000000,00000000,00000001”。
[0134]
基于此,文件系统在或字符“65”对应的还原数据之后,能够将目标字符串“1,65,20,1,30,23,255,2,4,1”中的更新状态数据以及更新标识删除,也即是将第一位的字符“1”,以及第二位的字符“65”删除,从而获得字符串“20,1,30,23,255,2,4,1”。
[0135]
之后文件系统将该字符串“20,1,30,23,255,2,4,1”转换为二进制数据“00010100,00000001,00011110,00010111,11111111,00000010,00000100,00000001”;并将该二进制数据与还原数据进行按位异或运算,从而获得运算后的二进制数据,也即是“00010100,00000000,00011110,00010111,11111111,00000010,00000100,00000000”;通过上述的步骤,即可将目标字符串中,被替换为字符“1”的字符“0”进行还原。
[0136]
在获得运行后的二进制数据之后,该文件系统将该运算后的二进制数据转换为一个无符号的64位的整数(uint64_t),从而实现将加密字符串转换为哈希值。
[0137]
本说明书实施例中,通过将删除更新标识以及更新状态数据后的目标字符串转换为二进制数据,并基于还原数据对二进制数据进行异或运算,获得运算后的所述二进制数据;且基于运算后的二进制数据获得目标文件标识。实现了对目标字符串进行快速的数据还原,提高了获得目标文件标识的效率,降低了文件系统对目标文件进行操作过程中的时间复杂度。
[0138]
此外,文件系统在对目标字符串进行数据还原之前,需要基于目标字符串对应的更新状态数据生成还原数据,并构建还原数据集合,从而实现后续基于该还原数据集合快速的将目标字符串还原为目标文件标识,具体实现方式如下。
[0139]
所述确定所述目标字符串的更新状态数据之前,还包括:
[0140]
获取所述目标字符串的更新状态数据;
[0141]
将所述更新状态数据转换为二进制数据,并基于预设数据算法对所述二进制数据进行计算,获得所述二进制数据对应的还原数据;
[0142]
基于所述更新状态数据以及所述还原数据构建还原数据集合。
[0143]
其中,预设数据算法可以根据实际应用进行设置,本说明书对此不做具体限定。
[0144]
具体的,文件系统在对目标字符串进行还原之后,需要确定出目标字符串对应的更新状态数据,将该更新状态数据转换为二进制数据。之后基于预设数据算法对二进制数据进行计算,从而获得该二进制数据对应的还原数据。文件系统在获得还原数据之后,确定该还原数据与更新状态信息的对应关系,并基于该还原数据以及对应的更新状态信息构建还原数据集合。
[0145]
沿用上例,其中,更新状态数据的大小可以为一个字节,对应的,该更新状态数据可以表示256种类型的更新状态,基于此,文件系统在对加密字符串进行解密之前,可以对这256种表示状态压缩的值(更新状态数据)进行预处理,也即是对0~255这256个更新状态数据进行预处理,获得每个更新状态数据对应的还原数据,并将该还原数据以及更新状态数据存进一个uint64_t[256]的数组中,使得后续替换过程中,只需要一次按位异或就可以完成对加密字符串的还原。
[0146]
其中,对256种表示状态压缩的值进行预处理的过程,可以通过预设数据算法对256种表示状态压缩的值进行预处理。该预设数据算法可以为下述公式1以及公式2。
[0147]
dp[1《《i]=(1《《i)^3
ꢀꢀꢀꢀꢀꢀ
公式1
[0148]
dp[s]=dp[s^(s&-s)]|dp[s&-s]
ꢀꢀꢀꢀꢀ
公式2
[0149]
其中,^表示按位异或运算;&表示and,即按位与运算;s&-s表示取得二进制下s最低的1,比如0b10010(十进制18),取完后可以得到0b00010;s可以理解为0~255这256种表示状态压缩的值。
[0150]
具体的,文件系统首先通过公式1对256种表示状态压缩的值中,只存在一个数值“1”的进行处理,该值仅有8种;例如0b10000000(十进制128),通过令dp[1《《i]=(1《《i)^3,从而将该0b10000000(十进制128),扩充为二进制数据“00000001,00000000,00000000,00000000,00000000,00000000,00000000,00000000”。我们遍历i从0到7得到这8种值的扩充。
[0151]
接下来我们遍历s从0到255使用状态转移dp[s]=dp[s^(s&-s)]|dp[s&-s],从而完成对256种表示状态压缩的值的扩充,获得256种类型的还原数据。
[0152]
本技术提供的文件处理方法,通过将目标字符串的更新状态数据转换为二进制数据,并基于预设数据算法对该二进制数据进行计算,获得二进制数据对应的还原数据;且基于更新状态数据以及还原数据构建还原数据集合,便于后续基于该还原数据集合对目标字符串进行快速的还原,降低了文件系统对目标文件进行操作过程中的时间复杂度。
[0153]
此外,在本技术提供的文件处理方法,文件系统在将目标文件标识转换为目标字符串之后,能够基于该目标字符串对目标文件进行各种处理,具体实现方式如下。
[0154]
所述将所述目标文件标识转换为目标字符串之后,还包括:
[0155]
基于所述目标字符串对所述目标文件进行存储。
[0156]
具体的,计算机软件的文件系统将目标文件标识转换为目标字符串之后,能够基于该目标字符串对目标文件进行存储,便于后续文件系统对该目标文件进行各种处理。
[0157]
在实际应用中,文件系统还能够基于该目标字符串对目标文件进行传播和/或使用,从而避免了初始文件标识过多占用内存资源的问题,并且避免了目标文件标识与文件系统的不兼容问题,导致的对整个文件系统进行改造所浪费的时间成本和人工成本。
[0158]
本技术提供的文件处理方法,通过预设算法将目标文件的初始文件标识处理为内存占用较小的目标文件标识,从而避免了初始文件标识过多占用内存资源的问题,并且,基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串,从而解决了目标文件标识与文件系统的不兼容问题,避免了对整个文件系统进行改造过程中浪费的时间成本和人工成本。
[0159]
下述结合附图2,以本技术提供的文件处理方法对哈希值加密场景的应用为例,对所述文件处理方法进行进一步说明。其中,图2示出了本技术一实施例提供的一种应用于对哈希值进行加密场景的文件处理方法的处理流程图,具体包括以下步骤:
[0160]
步骤s202:文件系统将文件名转换为哈希值。
[0161]
具体的,计算机游戏的文件系统可以将游戏文件的文件名(由字符串表示),通过哈希算法转换为一个无符号64位的整数(uint64_t),也即是哈希值。
[0162]
并且,该文件系统判断该哈希值是否与历史通过哈希算法获得的历史哈希值相同,若是,则表示该哈希值产生冲突,停止对文件名转换为的哈希值进行加密。并文件系统在后续使用该文件名对游戏文件进行存储和传播。
[0163]
若否,则表示该哈希值不会产生冲突,则执行步骤s204。
[0164]
其中,该游戏文件可以理解为上述实施例中的目标文件,该文件名可以理解为上述实施例中的初始文件标识,该哈希值可以理解为上述实施例中的目标文件标识。
[0165]
步骤s204:文件系统将哈希值转换为字符串。
[0166]
其中,该字符串可以理解为上述实施例中的初始字符串。
[0167]
具体的,针对没有产生冲突的无符号64位整数,可以直接将其转换为长度为8b(8个字节)的字符串,其中,该字符串中的每个字符值(char)都是一个字节大小,8个char相当于1个uint64_t。
[0168]
步骤s206:文件系统将字符串中的字符“0”替换为字符“1”。
[0169]
在实际应用中,该计算机游戏的文件系统会在字符串的尾部,增加一个字符“0”,并通过该字符“0”对整个字符串的长度进行判断。而根据哈希值转换成的这份字符串中有字符“0”存在,而计算机游戏的文件系统依赖于这个字符“0”来判断整个字符串的长度。
[0170]
因此,为了避免文件系统的错误判断。可以将字符串中的所有字符值为“0”的部分都改为字符“1”,从而实现对该字符串的加密;而这也刚好也可以用一个字节大小(2^8bit)的字符值存储这份修改,这就叫做二进制下的状态压缩。
[0171]
比如,该字符值可以为字符0~255中任意一个字符,基于该字符值构成的字符串可以为(20,0,30,23,255,2,4,0)这个长度为8的字符串;在将该字符串中的字符“0”替换为字符“1”,获得替换后的字符串(20,1,30,23,255,2,4,1)之后,可以用存储值0b01000001(即十进制65)来表示这份修改,其中,该存储值的第2个1和最后一个1表示原字符串的第二位和最后一位被修改。我们将这个值放入原字符串,就得到新的长度为9的字符串,即(101,20,1,30,23,255,2,4,1)。
[0172]
在实际应用中,在字符串中不存在字符“0”时,该表示字符串修改信息存储值也为“0”;因此将该存储值加入到原字符串中,可能会造成文件系统的错误识别;基于此,该文件系统在确定该存储位是字符“0”的情况下,会将为字符“0”的存储值,改为字符“255”,从而避免由于字符串中存在字符“0”导致文件系统的错误识别。
[0173]
其中,该存储值可以理解为上述实施例中的更新状态数据,该字符串(20,1,30,23,255,2,4,1)可以理解为上述实施例中的更新字符串。
[0174]
步骤s208:文件系统为加密后的字符串确定标识字符。
[0175]
具体的,文件系统为了更方便的分辨出加密后的字符串,以及该系统中的其他字符串,会在加密后的字符串之前再增加一位标识字符,来标志这一字符串是否被加密,使得文件系统能够分辨这是对哈希值进行加密获得的字符串,还是原名(原文件名)。就得到新的长度为10b的字符串,即(1,65,20,1,30,23,255,2,4,1)。
[0176]
其中,该标识字符可以理解为上述实施例中的更新标识。
[0177]
基于此,这样就将游戏文件的原为60b大小的文件名,优化到了只有10b大小的字符串。从而使用10b大小的字符串对游戏文件进行存储和传播。
[0178]
在具体实施过程中,需要在使用或者传播完成后,通过同样具有效率的解密算法将这个加密字符串还原成无符号64位的整数。
[0179]
当需要对加密字符串进行解密时,通过去除新增的前两位,也即是存储值以及加密标识;并根据存储值记录下的修改位,将加密后的字符串中替换成字符“1”的字符改为字符“0”。
[0180]
但是,可以注意到对哈希值进行加密的时间复杂度为o(8),对加密字符串进行解密的时间复杂度为o(8),虽然对内存几乎没有额外的增加,却减少了5倍的内存使用量。而对原有的文件系统和下载系统不需要进行改动。但是,这种方法使得每个文件的操作,徒增了o(16)的时间复杂度。
[0181]
基于此,本技术提供的文件处理方法,注意到加密过程的时间复杂度是难以优化的,但是解密过程可以用基于状态压缩,制作一个预处理过的、仅2kb的表来优化到o(1)的时间复杂度,且这个预处理过程使用动态规划优化后只需要几毫秒。从而降低了对每个文件进行操作的时间复杂度,具体实现方式参见下述步骤。
[0182]
步骤s210:文件系统对状态压缩的值进行预处理,并存进数组。
[0183]
具体的,通过对(0~255)这256个表示状态压缩的值进行预处理,获得每个值对应的二进制数据,并将其存进一个uint64_t[256]的数组中(2kb左右),使得后续对加密后的字符串中字符“1”的替换过程,只需要一次按位异或就可以完成。
[0184]
其中,对状态压缩的值进行预处理为:首先令dp[1《《i]=(1《《i)^3,i从0遍历到7。
[0185]
接下来遍历s从0到255使用状态转移dp[s]=dp[s^(s&-s)]|dp[s&-s],其中s为256个表示状态压缩的值;^表示按位异或运算;&表示and,即按位与运算,s&-s表示取得二进制下s最低的1,比如0b10010,取完后可以得到0b00010。
[0186]
基于此,将每个大小为1个字节的,表示状态压缩的值,扩充为一个64位(8个字节)的二进制数。
[0187]
步骤s212:文件系统将加密后的字符串还原为哈希值。
[0188]
具体的,文件系统将加密后的字符串(1,65,20,1,30,23,255,2,4,1)的前两位删除,获得字符串(20,1,30,23,255,2,4,1)。再从数组中确定该字符串中表示状态压缩的值所对应的二进制数,也即是字符“65”对应的二进制数。该二进制数可以为“00000000,00000001,00000000,00000000,00000000,00000000,00000000,00000001”。
[0189]
之后将上述的字符串(20,1,30,23,255,2,4,1),转换回无符号64位整数并异或上dp[101](字符“65”对应的二进制数),就完成了解密过程。
[0190]
本技术提供的文件处理方法,通过设计一个兼具时间和空间优势的加密算法将这个整数在存储和传播前转换为一个可以与原框架兼容的字符串,并且在使用或者传播完成后,同样通过具有效率的解密算法将这个字符串还原成整数,从而实现了使用无冲突的哈希值,替换文件名优化了文件系统的内存,并且使用基于状态压缩的加密和解密算法,以极小的内存和时间代价使整份文件系统不需要进行代码重构和代码测试,省下了巨大的时间成本。
[0191]
与上述方法实施例相对应,本技术还提供了文件处理装置实施例,图3示出了本技术一实施例提供的一种文件处理装置的结构示意图。如图3所示,该装置包括:
[0192]
处理模块302,被配置为将目标文件的初始文件标识通过预设算法处理为目标文件标识;
[0193]
转换模块304,被配置为在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;
[0194]
其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。
[0195]
可选地,所述预设算法为哈希算法;
[0196]
相应地,所述处理模块302,还被配置为将目标文件的初始文件标识通过哈希算法处理为目标文件标识。
[0197]
可选地,所述转换模块304,还被配置为:
[0198]
从所述目标文件标识的关联信息中,确定所述目标文件标识的属性信息以及字符尺寸规则;
[0199]
基于所述目标文件标识的属性信息以及字符尺寸规则,将所述目标文件标识转换为初始字符串;
[0200]
基于预设标识规则对所述初始字符串进行更新,获得目标字符串。
[0201]
可选地,所述转换模块304,还被配置为:
[0202]
基于所述目标文件标识的属性信息以及字符尺寸规则,确定初始字符数量;
[0203]
将所述目标文件标识转换为二进制数据,并基于所述初始字符数量对所述二进制数据进行划分,获得与所述初始字符数量相同的二进制数据集合;
[0204]
将所述二进制数据集合转换为初始字符,并基于所述初始字符构建初始字符串。
[0205]
可选地,所述转换模块304,还被配置为:
[0206]
确定所述初始字符串中初始字符的字符属性;
[0207]
在所述字符属性满足预设标识规则的情况下,对所述字符属性对应的初始字符进行更新,获得更新字符串;
[0208]
确定所述更新字符串对应的更新状态数据;
[0209]
基于所述更新状态数据以及所述更新字符串,确定目标字符串。
[0210]
可选地,所述转换模块304,还被配置为:
[0211]
通过预设更新字符对所述字符属性对应的初始字符进行替换,获得更新字符串,其中,所述初始字符为所述初始字符串中的字符。
[0212]
可选地,所述转换模块304,还被配置为:
[0213]
确定所述更新字符串对应的更新标识;
[0214]
基于所述更新标识、所述更新状态数据以及所述更新字符串,构建目标字符串。
[0215]
可选地,所述文件处理装置,还包括还原模块,被配置为:
[0216]
确定所述目标字符串的更新状态数据;
[0217]
从还原数据集合中获取所述更新状态数据对应的还原数据;
[0218]
基于所述还原数据对所述目标字符串进行数据还原,获得目标文件标识。
[0219]
可选地,所述还原模块,还被配置为:
[0220]
将所述目标字符串中的更新标识以及所述更新状态数据删除;
[0221]
将所述目标字符串转换为二进制数据,并基于所述还原数据对所述二进制数据进行异或运算,获得运算后的所述二进制数据;
[0222]
基于运算后的所述二进制数据获得目标文件标识。
[0223]
可选地,所述还原模块,还被配置为:
[0224]
获取所述目标字符串的更新状态数据;
[0225]
将所述更新状态数据转换为二进制数据,并基于预设数据算法对所述二进制数据进行计算,获得所述二进制数据对应的还原数据;
[0226]
基于所述更新状态数据以及所述还原数据构建还原数据集合。
[0227]
可选地,所述文件处理装置,还包括存储模块,被配置为:
[0228]
基于所述目标字符串对所述目标文件进行存储。
[0229]
本技术提供的文件处理装置,通过预设算法将目标文件的初始文件标识处理为内存占用较小的目标文件标识,从而避免了初始文件标识过多占用内存资源的问题,并且,基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串,从而解决了目标文件标识与文件系统的不兼容问题,避免了对整个文件系统进行改造过程中浪费的时间成本和人工成本。
[0230]
上述为本实施例的一种文件处理装置的示意性方案。需要说明的是,该文件处理装置的技术方案与上述的文件处理方法的技术方案属于同一构思,文件处理装置的技术方案未详细描述的细节内容,均可以参见上述文件处理方法的技术方案的描述。此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
[0231]
图4示出了根据本技术一实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。
[0232]
计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0233]
在本技术的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0234]
计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备400还可以是移动式或静止式的服务器。
[0235]
其中,处理器420用于执行所述文件处理方法的计算机可执行指令。
[0236]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的文件处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述文件处理方法的技术方案的描述。
[0237]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于文件处理方法。
[0238]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的文件处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述文件处理方法的技术方案的描述。
[0239]
本技术一实施例还提供一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述文件处理方法的步骤。
[0240]
需要说明的是,该芯片的技术方案与上述的文件处理方法的技术方案属于同一构思,芯片的技术方案未详细描述的细节内容,均可以参见上述文件处理方法的技术方案的描述。
[0241]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0242]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0243]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0244]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0245]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
技术特征:
1.一种文件处理方法,其特征在于,包括:将目标文件的初始文件标识通过预设算法处理为目标文件标识;在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。2.根据权利要求1所述的文件处理方法,其特征在于,所述预设算法为哈希算法;相应地,所述将目标文件的初始文件标识通过加密算法处理为目标文件标识,包括:将目标文件的初始文件标识通过哈希算法处理为目标文件标识。3.根据权利要求1所述的文件处理方法,其特征在于,所述基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串,包括:从所述目标文件标识的关联信息中,确定所述目标文件标识的属性信息以及字符尺寸规则;基于所述目标文件标识的属性信息以及字符尺寸规则,将所述目标文件标识转换为初始字符串;基于预设标识规则对所述初始字符串进行更新,获得目标字符串。4.根据权利要求3所述的文件处理方法,其特征在于,所述基于所述目标文件标识的属性信息以及字符尺寸规则,将所述目标文件标识转换为初始字符串,包括:基于所述目标文件标识的属性信息以及字符尺寸规则,确定初始字符数量;将所述目标文件标识转换为二进制数据,并基于所述初始字符数量对所述二进制数据进行划分,获得与所述初始字符数量相同的二进制数据集合;将所述二进制数据集合转换为初始字符,并基于所述初始字符构建初始字符串。5.根据权利要求3所述的文件处理方法,其特征在于,所述基于预设标识规则对所述初始字符串进行更新,获得目标字符串,包括:确定所述初始字符串中初始字符的字符属性;在所述字符属性满足预设标识规则的情况下,对所述字符属性对应的初始字符进行更新,获得更新字符串;确定所述更新字符串对应的更新状态数据;基于所述更新状态数据以及所述更新字符串,确定目标字符串。6.根据权利要求5所述的文件处理方法,其特征在于,所述对所述字符属性对应的初始字符进行更新,获得更新字符串,包括:通过预设更新字符对所述字符属性对应的初始字符进行替换,获得更新字符串,其中,所述初始字符为所述初始字符串中的字符。7.根据权利要求5所述的文件处理方法,其特征在于,所述基于预设标识规则对所述初始字符串进行更新,获得目标字符串,包括:确定所述更新字符串对应的更新标识;基于所述更新标识、所述更新状态数据以及所述更新字符串,构建目标字符串。8.根据权利要求1所述的文件处理方法,其特征在于,所述将所述目标文件标识转换为目标字符串之后,还包括:
确定所述目标字符串的更新状态数据;从还原数据集合中获取所述更新状态数据对应的还原数据;基于所述还原数据对所述目标字符串进行数据还原,获得目标文件标识。9.根据权利要求8所述的文件处理方法,其特征在于,所述基于所述还原数据对所述目标字符串进行数据还原,获得目标文件标识,包括:将所述目标字符串中的更新标识以及所述更新状态数据删除;将所述目标字符串转换为二进制数据,并基于所述还原数据对所述二进制数据进行异或运算,获得运算后的所述二进制数据;基于运算后的所述二进制数据获得目标文件标识。10.根据权利要求8所述的文件处理方法,其特征在于,所述确定所述目标字符串的更新状态数据之前,还包括:获取所述目标字符串的更新状态数据;将所述更新状态数据转换为二进制数据,并基于预设数据算法对所述二进制数据进行计算,获得所述二进制数据对应的还原数据;基于所述更新状态数据以及所述还原数据构建还原数据集合。11.一种文件处理装置,其特征在于,包括:处理模块,被配置为将目标文件的初始文件标识通过预设算法处理为目标文件标识;转换模块,被配置为在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。12.一种计算设备,其特征在于,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现权利要求1-10任意一项所述文件处理方法的步骤。13.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-10任意一项所述文件处理方法的步骤。
技术总结
本申请提供文件处理方法及装置,其中所述文件处理方法包括:将目标文件的初始文件标识通过预设算法处理为目标文件标识;在所述目标文件标识与历史文件标识不相同的情况下,基于所述目标文件标识的关联信息以及预设标识规则,将所述目标文件标识转换为目标字符串;其中,所述历史文件标识为将历史文件的初始文件标识通过预设算法处理后获得的标识。具体地,该方法通过哈希算法将初始文件标识处理为内存占用较小的目标文件标识,避免了初始文件标识过多占用内存资源的问题,并基于目标文件标识的关联信息以及预设标识规则,将目标文件标识转换为目标字符串,解决了目标文件标识与文件系统的不兼容问题,节省了改造文件系统的成本。本。本。
技术研发人员:叶森 颜蒙杰 施润丰 倪秀秀 梁波
受保护的技术使用者:珠海金山数字网络科技有限公司
技术研发日:2021.12.06
技术公布日:2022/3/8