CN114817327A - 文件版本识别方法、系统、终端设备及存储介质 - Google Patents
文件版本识别方法、系统、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114817327A CN114817327A CN202210434308.1A CN202210434308A CN114817327A CN 114817327 A CN114817327 A CN 114817327A CN 202210434308 A CN202210434308 A CN 202210434308A CN 114817327 A CN114817327 A CN 114817327A
- Authority
- CN
- China
- Prior art keywords
- file
- byte
- version number
- segmented
- version
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种文件版本识别方法、系统、终端设备及存储介质,该方法包括:对待识别文件流进行分段得到分段文件流,并对各分段文件流进行字节错位处理;将各分段文件流分别与预设规则字节进行字节匹配;若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号;分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。本发明通过分别获取各分段文件流匹配到的版本号特征值,基于获取到的版本号特征值的优先级,能有效地确定到待识别文件的版本号。
Description
技术领域
本发明涉数据处理技术领域,尤其涉及一种文件版本识别方法、系统、终端设备及存储介质。
背景技术
建筑信息模型(Building Information Modelling,BIM)以三维数字化技术为基础,集成了工程项目规划、设计、施工和运维各个阶段信息。以Autodesk Revit为代表的BIM设计专业软件,走在了BIM研究、应用的前沿,目前作为一套成熟的BIM模型解决方案,占据了国内外主流市场。随着BIM技术的广泛应用和深入发展,利用Revit设计软件处理BIM模型,通过浏览器或者移动端在线查看BIM模型已经成为大型项目协同、运维的一项重要能力,这项技术就是BIM轻量化技术。
BIM轻量化技术将不同版本的Revit模型数据转换为一种加密的二三维格式,首要工作便是通过后台静默方式准确快速地识别出需要轻量化处理的Revit文件的版本,然后利用对应版本的轻量化程序进行后续处理。Revit文件的版本一旦识别错误,则可能直接导致后续轻量化操作失败。
现有的Revit文件版本识别过程中,一般采用编码读取的方式直接读取Revit文件流,并匹配关键字得到Revit文件的版本号,但由于采用编码读取的方式直接读取Revit文件流时,容易因字节错位形成乱码,导致Revit文件版本识别错误,降低了文件版本识别的准确性。
发明内容
本发明实施例的目的在于提供一种文件版本识别方法、系统、终端设备及存储介质,旨在解决现有的Revit文件版本识别过程中,版本识别准确性较低的问题。
本发明实施例是这样实现的,一种文件版本识别方法,所述方法包括:
对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理,所述字节错位处理后的相邻分段文件流之间存在字节重叠;
将各分段文件流分别与预设规则字节进行字节匹配;
若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号;
分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。
更进一步的,所述对各分段文件流进行字节错位处理,包括:
针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据预设字节错位数量,将字节起点向相邻的上一个分段文件流的字节终点进行错位重叠;
针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据所述预设字节错位数量,将字节终点向相邻的下一个分段文件流的字节起点进行错位重叠。
更进一步的,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,包括:
根据各版本号特征值的优先级对各版本号特征值进行排序,得到优先级排序表;
根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配。
更进一步的,所述根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若所述版本号特征值与所述分段文件流的特征匹配成功,且所述版本号特征值的优先级是预设优先级,则直接根据所述版本号特征值确定所述待识别文件的版本号。
更进一步的,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若获取到的所述版本号特征值的优先级中,未存在所述预设优先级,则对所述待识别文件流进行字节偏移;
将字节偏移后的所述待识别文件流,返回执行所述进行分段,得到分段文件流,将各分段文件流分别与预设规则字节进行字节匹配的步骤及后续步骤。
更进一步的,所述对所述待识别文件流进行字节偏移,包括:
根据预设字节偏移数量,将所述待识别文件流的起始字节向后偏移。
更进一步的,所述根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号,包括:
在获取到的所述版本号特征值中,将最高优先级的所述版本号特征值确定为目标特征值;
将所述目标特征值对应的版本号,确定为所述待识别文件的版本号。
本发明实施例的另一目的在于提供一种文件版本识别系统,所述系统包括:
字节错位单元,用于对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理,所述字节错位处理后的相邻分段文件流之间存在字节重叠;
字节匹配单元,用于将各分段文件流分别与预设规则字节进行字节匹配;
特征匹配单元,用于若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号;
版本号确定单元,用于分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。
本发明实施例的另一目的在于提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明实施例,通过对各分段文件流进行字节错位处理,防止了待识别文件流中由于分段所导致的版本号被截断的现象,提高了文件版本识别的准确性,通过将各分段文件流分别与预设规则字节进行字节匹配,以达到对各分段文件流的初次版本识别的效果,若任一分段文件流与预设规则字节的字节匹配成功,通过分别将预设特征列表中的版本号特征值与分段文件流进行特征匹配,以达到对分段文件流的二次版本识别的效果,进一步提高了文件版本识别的准确性,通过分别获取各分段文件流匹配到的版本号特征值,基于获取到的版本号特征值的优先级,能有效地确定到待识别文件的版本号,防止了由于采用编码读取的方式直接读取待识别文件流进行版本识别,所导致的版本识别准确性低下的现象。
附图说明
图1是本发明第一实施例提供的文件版本识别方法的流程图;
图2是本发明第一实施例提供的UTF-16LE编码文件特征的示意图;
图3是本发明第一实施例提供的版本号特征值的示意图;
图4是本发明第一实施例提供的对待识别文件流进行字节偏移的示意图;
图5是本发明第二实施例提供的文件版本识别方法的流程图;
图6是本发明第二实施例提供的对分段文件流进行字节错位处理的示意图;
图7是本发明第四实施例提供的文件版本识别系统的结构示意图;
图8是本发明第四实施例提供的文件版本识别系统的具体实施流程图;
图9是本发明第五实施例提供的终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的文件版本识别方法的流程图,该文件版本识别方法可以应用于任一终端设备或系统,该文件版本识别方法包括步骤:
步骤S10,对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理;
其中,字节错位处理后的相邻分段文件流之间存在字节重叠,该待识别文件流为Revit文件流,该步骤中,可以根据需求进行分段文件流个数的设置,例如,当将待识别文件流分为三段时,则得到三个分段文件流,当将待识别文件流分为四段时,则得到四个分段文件流,通过对各分段文件流进行字节错位处理,防止了待识别文件流中由于分段所导致的版本号被截断的现象,提高了文件版本识别的准确性;
可选的,对待识别文件流进行分段得到分段文件流之后,分别对各分段文件流进行读取,该步骤中,可以采用无锁定随机读取的方式读取各分段文件流,读取各分段文件流的编码方式采用UTF-16LE,请参阅图2,UTF-16LE是一种固定双字节表达字节的编码方式,且将高位的字节放在高地址表示,Revit文件主体采用UTF-16LE编码,对于英文、数字等8位即可表达的字节,直接读流可以较容易读取出,但其他混合数据容易因为字节码错位或者加密出现乱码,所以判断Revit文件版本可以通过尝试读取版本特征值(英文加数字)来匹配。
步骤S20,将各分段文件流分别与预设规则字节进行字节匹配;
其中,针对字节错位处理后的各分段文件流,可以采用字节数组缓冲器的方式进行读取,以缓冲器存储当前读入的各分段文件流的字节片段,该步骤中,由于Revit文件版本号目前按照2016,2017,2018,2019,xxx等时间格式定义,因此,可以以“2xxx”四位数字的规则表达式匹配该缓冲器的内容,即,可以将“2xxx”设置为预设规则字节,将各分段文件流分别与“2xxx”进行字节匹配,以判断各分段文件流是否存在版本号,以达到对各分段文件流的初次版本识别的效果,优选的,该预设规则字节还可以根据需求进行设置;
步骤S30,若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配;
其中,该版本号特征值用于表征对应的文件版本号,该版本号特征值可以为预设值的字节串、预设值的库路径和预设值的文件夹路径等,该预设特征列表中至少存储有一个版本号特征值,当预设特征列表中存储有多个不同的版本号特征值时,不同版本号特征值之间的优先级可以相同或不相同,若任一分段文件流与预设规则字节的字节匹配成功,通过分别将预设特征列表中的版本号特征值与分段文件流进行特征匹配,以达到对分段文件流的二次版本识别的效果,进一步提高了文件版本识别的准确性;
可选的,该步骤中,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,包括:
根据各版本号特征值的优先级对各版本号特征值进行排序,得到优先级排序表;
其中,请参阅图3,本实施例提供了三种优先级的版本号特征值,预设值的字节串为“最高优先级”,预设值的库路径为“中等优先级”,预设值的文件夹路径为“低优先级”,该步骤中,同等优先级之间可以根据需求在优先级排序表进行设置或调整;
根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配;
其中,通过优先级排序表依序将各版本号特征值与分段文件流进行特征匹配,以达到以优先级从高到底的方式,对与预设规则字节字节匹配成功的分段文件流进行依次匹配,以判断该分段文件流进中是否有版本号。
进一步地,该步骤中,所述根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若所述版本号特征值与所述分段文件流的特征匹配成功,且所述版本号特征值的优先级是预设优先级,则直接根据所述版本号特征值确定所述待识别文件的版本号,其中,该预设优先级可以根据需求进行设置,例如,该步骤中,预设优先级设置为“最高优先级”,即,若版本号特征值与分段文件流的特征匹配成功,且版本号特征值的优先级是“最高优先级”,则直接根据该“最高优先级”对应的版本号特征值确定待识别文件的版本号。
更进一步地,该步骤中,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若获取到的所述版本号特征值的优先级中,未存在所述预设优先级,则对所述待识别文件流进行字节偏移;
将字节偏移后的所述待识别文件流,返回执行所述进行分段,得到分段文件流,将各分段文件流分别与预设规则字节进行字节匹配的步骤及后续步骤;
其中,若获取到的版本号特征值的优先级中,未存在“最高优先级”,则通过对待识别文件流进行字节偏移,以保障循环进行版本号识别的操作,即,通过将字节偏移后的所述待识别文件流,返回执行所述进行分段,得到分段文件流,将各分段文件流分别与预设规则字节进行字节匹配的步骤及后续步骤,以达到循环进行文件版本号识别的效果,直至当获取到的版本号特征值的优先级中,存在“最高优先级”时,根据该“最高优先级”对应的版本号特征值确定待识别文件的版本号。
优选的,该步骤中,所述对所述待识别文件流进行字节偏移,包括:
根据预设字节偏移数量,将所述待识别文件流的起始字节向后偏移,其中,请参阅图4,该预设字节偏移数量可以根据需求进行设置,例如,该预设字节偏移数量可以设置为10个字节、20个字节或30个字节等。
步骤S40,分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号;
其中,通过分别获取各分段文件流匹配到的版本号特征值,基于获取到的版本号特征值的优先级,能有效地确定到待识别文件的版本号,防止了由于采用编码读取的方式直接读取待识别文件流进行版本识别,所导致的版本识别准确性低下的现象;
可选的,该步骤中,所述根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号,包括:
在获取到的所述版本号特征值中,将最高优先级的所述版本号特征值确定为目标特征值,并将所述目标特征值对应的版本号,确定为所述待识别文件的版本号;
其中,当待识别文件流的字节偏移次数大于次数阈值,或当检测到针对待识别文件流无法再进行字节偏移,且在获取到的版本号特征值的优先级中,均未存在预设优先级时,则执行步骤S40,该次数阈值可以需求进行设置,例如,该次数阈值可以设置为5次、10次或20次等。
本实施例,通过对各分段文件流进行字节错位处理,防止了待识别文件流中由于分段所导致的版本号被截断的现象,提高了文件版本识别的准确性,通过将各分段文件流分别与预设规则字节进行字节匹配,以达到对各分段文件流的初次版本识别的效果,若任一分段文件流与预设规则字节的字节匹配成功,通过分别将预设特征列表中的版本号特征值与分段文件流进行特征匹配,以达到对分段文件流的二次版本识别的效果,进一步提高了文件版本识别的准确性,通过分别获取各分段文件流匹配到的版本号特征值,基于获取到的版本号特征值的优先级,能有效地确定到待识别文件的版本号,防止了由于采用编码读取的方式直接读取待识别文件流进行版本识别,所导致的版本识别准确性低下的现象。
实施例二
请参阅图5,是本发明第二实施例提供的文件版本识别方法的流程图,该实施例用于对步骤S10的步骤作进一步细化,包括步骤:
步骤S11,针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据预设字节错位数量,将字节起点向相邻的上一个分段文件流的字节终点进行错位重叠;
其中,针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,通过预设字节错位数量,将字节起点向相邻的上一个分段文件流的字节终点进行错位重叠,以达到对各剩余分段文件流的字节起点的字节错位效果,该预设字节错位数量可以根据需求进行设置,例如,该预设字节错位数量可以设置为10和、20个或30个等;
请参阅图6,当待识别文件流被分段为三个分段文件流时,则将处于分段二的分段文件流的字节起点向相邻的上一个分段文件流的字节终点进行错位重叠,即,将分段二的分段文件流的字节起点向分段一的分段文件流的字节终点进行错位重叠;
步骤S12,针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据所述预设字节错位数量,将字节终点向相邻的下一个分段文件流的字节起点进行错位重叠;
其中,针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据所述预设字节错位数量,将字节终点向相邻的下一个分段文件流的字节起点进行错位重叠,以达到对各剩余分段文件流的字节终点的字节错位效果;
请参阅图6,当待识别文件流被分段为三个分段文件流时,则将处于分段二的分段文件流的字节终点向相邻的下一个分段文件流的字节起点进行错位重叠,即,将分段二的分段文件流的字节终点向分段三的分段文件流的字节起点进行错位重叠;
可选的,该步骤中,当待识别文件流被分段为四个分段文件流时,则针对分段二的分段文件流,将字节起点向分段一的分段文件流的字节终点进行错位重叠,将字节终点向分段三的分段文件流的字节起点进行错位重叠;
针对分段三的分段文件流,将字节起点向分段二的分段文件流的字节终点进行错位重叠,将字节终点向分段四的分段文件流的字节起点进行错位重叠。
本实施例中,通过将各剩余分段文件流的字节起点向相邻的上一个分段文件流的字节终点进行错位重叠,以达到对各剩余分段文件流的字节起点的错位重叠效果,通过将各剩余分段文件流的字节终点向相邻的下一个分段文件流的字节起点进行错位重叠,以达到对各剩余分段文件流的字节终点的字节错位效果,进而防止了待识别文件流中由于分段所导致的版本号被截断的现象,提高了文件版本识别的准确性。
实施例三
请参阅图7,是本发明第四实施例提供的文件版本识别系统100的结构示意图,包括:字节错位单元10、字节匹配单元11、特征匹配单元12和版本号确定单元13,其中:
字节错位单元10,用于对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理,所述字节错位处理后的相邻分段文件流之间存在字节重叠。
可选的,字节错位单元10还用于:针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据预设字节错位数量,将字节起点向相邻的上一个分段文件流的字节终点进行错位重叠;
针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据所述预设字节错位数量,将字节终点向相邻的下一个分段文件流的字节起点进行错位重叠。
字节匹配单元11,用于将各分段文件流分别与预设规则字节进行字节匹配。
特征匹配单元12,用于若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号。
可选的,特征匹配单元12还用于:根据各版本号特征值的优先级对各版本号特征值进行排序,得到优先级排序表;
根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配。
进一步地,特征匹配单元12还用于:若所述版本号特征值与所述分段文件流的特征匹配成功,且所述版本号特征值的优先级是预设优先级,则直接根据所述版本号特征值确定所述待识别文件的版本号。
更进一步地,特征匹配单元12还用于:若获取到的所述版本号特征值的优先级中,未存在所述预设优先级,则对所述待识别文件流进行字节偏移;
将字节偏移后的所述待识别文件流,返回执行所述进行分段,得到分段文件流,将各分段文件流分别与预设规则字节进行字节匹配的步骤及后续步骤。
优选的,特征匹配单元12还用于:根据预设字节偏移数量,将所述待识别文件流的起始字节向后偏移。
版本号确定单元13,用于分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。
可选的,版本号确定单元13还用于:在获取到的所述版本号特征值中,将最高优先级的所述版本号特征值确定为目标特征值;
将所述目标特征值对应的版本号,确定为所述待识别文件的版本号。
具体的,请参阅图8,本实施例中文件版本识别系统100的具体实施步骤包括:
S1、无锁定随机读取Revit文件分段
通过不加锁随机读取文件流的方式,打开待识别文件流,读取文件的编码方式采用UTF-16LE;
UTF-16LE是一种固定双字节表达字节的编码方式,且将高位的字节放在高地址表示。Revit文件主体采用UTF-16LE编码,对于英文、数字等8位即可表达的字节,直接读流可以较容易读取出,但其他混合数据容易因为字节码错位或者加密出现乱码,所以判断Revit文件版本可以通过尝试读取版本特征值(英文加数字)来匹配,本实施例根据这个原理,通过改进纠偏实现,可以快速准确地读取Revit版本。
S1-1Revit文件定位分段
对待识别文件流按照三段进行划分,得到分段文件流,为防止截断部分出现版本号,导致匹配关键字被截断,将中间一段首尾各覆盖20个字节;
S1-2匹配可能的版本号(初次判断是否包含可能的版本号)
读取分段文件流采用一个字节数组缓冲器,以缓冲器存储当前读入的字节片段,Revit文件版本号目前按照2016,2017,2018,2019,xxx这种时间格式定义,因此,以2xxx四位数字的规则表达式匹配该缓冲器的内容,获取是否存在可能,如果缓冲器中内容存在可能性,则进行深度匹配特征值。
S2、深度匹配特征值(二次判断是否符合版本特征值)
S2-1、根据Revit文件版本号的特征值列表,以优先级从高到底,对S1-2中获取的数据进行依次匹配,判定如果符合最高优先级则直接返回版本号,否则缓存该可能的版本号值及其优先级;
S2-2、如果S2-1遍历未能找到最终可确定的版本号,则在文件流遍历完成后,判定是否查找到低优先级的版本号,如果有则取次优先级的版本号作为整个Revit文件的版本号,查找结束,否则通过偏移字节数遍历继续查找。
S3、偏移字节数继续查找
S3-1、对Revit文件流起始字节进行依次偏移20位,循环S1至S2的过程,直至匹配结束,最终获取版本号。
本实施例,通过对各分段文件流进行字节错位处理,防止了待识别文件流中由于分段所导致的版本号被截断的现象,提高了文件版本识别的准确性,通过将各分段文件流分别与预设规则字节进行字节匹配,以达到对各分段文件流的初次版本识别的效果,若任一分段文件流与预设规则字节的字节匹配成功,通过分别将预设特征列表中的版本号特征值与分段文件流进行特征匹配,以达到对分段文件流的二次版本识别的效果,进一步提高了文件版本识别的准确性,通过分别获取各分段文件流匹配到的版本号特征值,基于获取到的版本号特征值的优先级,能有效地确定到待识别文件的版本号,防止了由于采用编码读取的方式直接读取待识别文件流进行版本识别,所导致的版本识别准确性低下的现象。
实施例五
图9是本申请第五实施例提供的一种终端设备2的结构框图。如图9所示,该实施例的终端设备2包括:处理器20、存储器21以及存储在所述存储器21中并可在所述处理器20上运行的计算机程序22,例如文件版本识别方法的程序。处理器20执行所述计算机程序22时实现上述各个文件版本识别方法各实施例中的步骤,例如图1所示的S10至S40,或者图5所示的S11至S12。或者,所述处理器20执行所述计算机程序22时实现上述图7对应的实施例中各单元的功能,具体请参阅图7对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序22可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器21中,并由所述处理器20执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序22在所述终端设备2中的执行过程。例如,所述计算机程序22可以被分割成字节错位单元10、字节匹配单元11、特征匹配单元12和版本号确定单元13,各单元具体功能如上所述。
所述终端设备可包括,但不仅限于,处理器20、存储器21。本领域技术人员可以理解,图7仅仅是终端设备2的示例,并不构成对终端设备2的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器21可以是所述终端设备2的内部存储单元,例如终端设备2的硬盘或内存。所述存储器21也可以是所述终端设备2的外部存储设备,例如所述终端设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器21还可以既包括所述终端设备2的内部存储单元也包括外部存储设备。所述存储器21用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器21还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种文件版本识别方法,其特征在于,所述方法包括:
对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理,所述字节错位处理后的相邻分段文件流之间存在字节重叠;
将各分段文件流分别与预设规则字节进行字节匹配;
若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号;
分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。
2.如权利要求1所述的文件版本识别方法,其特征在于,所述对各分段文件流进行字节错位处理,包括:
针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据预设字节错位数量,将字节起点向相邻的上一个分段文件流的字节终点进行错位重叠;
针对除第一个分段文件流和最后一个分段文件流外的剩余分段文件流,根据所述预设字节错位数量,将字节终点向相邻的下一个分段文件流的字节起点进行错位重叠。
3.如权利要求1所述的文件版本识别方法,其特征在于,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,包括:
根据各版本号特征值的优先级对各版本号特征值进行排序,得到优先级排序表;
根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配。
4.如权利要求3所述的文件版本识别方法,其特征在于,所述根据所述优先级排序表依序将各版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若所述版本号特征值与所述分段文件流的特征匹配成功,且所述版本号特征值的优先级是预设优先级,则直接根据所述版本号特征值确定所述待识别文件的版本号。
5.如权利要求4所述的文件版本识别方法,其特征在于,所述分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配之后,还包括:
若获取到的所述版本号特征值的优先级中,未存在所述预设优先级,则对所述待识别文件流进行字节偏移;
将字节偏移后的所述待识别文件流,返回执行所述进行分段,得到分段文件流,将各分段文件流分别与预设规则字节进行字节匹配的步骤及后续步骤。
6.如权利要求5所述的文件版本识别方法,其特征在于,所述对所述待识别文件流进行字节偏移,包括:
根据预设字节偏移数量,将所述待识别文件流的起始字节向后偏移。
7.如权利要求1至6任一所述的文件版本识别方法,其特征在于,所述根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号,包括:
在获取到的所述版本号特征值中,将最高优先级的所述版本号特征值确定为目标特征值;
将所述目标特征值对应的版本号,确定为所述待识别文件的版本号。
8.一种文件版本识别系统,其特征在于,所述系统包括:
字节错位单元,用于对待识别文件流进行分段,得到分段文件流,并对各分段文件流进行字节错位处理,所述字节错位处理后的相邻分段文件流之间存在字节重叠;
字节匹配单元,用于将各分段文件流分别与预设规则字节进行字节匹配;
特征匹配单元,用于若任一所述分段文件流与所述预设规则字节的字节匹配成功,则分别将预设特征列表中的版本号特征值与所述分段文件流进行特征匹配,所述版本号特征值用于表征对应的文件版本号;
版本号确定单元,用于分别获取各分段文件流匹配到的版本号特征值,并根据获取到的所述版本号特征值的优先级,确定所述待识别文件的版本号。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210434308.1A CN114817327A (zh) | 2022-04-24 | 2022-04-24 | 文件版本识别方法、系统、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210434308.1A CN114817327A (zh) | 2022-04-24 | 2022-04-24 | 文件版本识别方法、系统、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817327A true CN114817327A (zh) | 2022-07-29 |
Family
ID=82508175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210434308.1A Pending CN114817327A (zh) | 2022-04-24 | 2022-04-24 | 文件版本识别方法、系统、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817327A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
-
2022
- 2022-04-24 CN CN202210434308.1A patent/CN114817327A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977346B (zh) | 一种pdf文档编辑方法及终端设备 | |
US20190259126A1 (en) | Image hidden information detector | |
US20170024439A1 (en) | Accelerated detection of matching patterns | |
CN114817327A (zh) | 文件版本识别方法、系统、终端设备及存储介质 | |
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
CN111340207A (zh) | 浮点数转换方法及装置 | |
CN117391192B (zh) | 基于图数据库的利用llm从pdf构建知识图谱的方法及装置 | |
CN106651972B (zh) | 一种二值图像编码、解码方法及装置 | |
CN112115105A (zh) | 一种业务处理方法、装置及设备 | |
WO2019109514A1 (zh) | 一种数据表备份方法、装置、电子设备及介质 | |
CN116126997B (zh) | 一种文献去重存储方法、系统、设备及存储介质 | |
CN111862343A (zh) | 一种三维重建方法、装置、设备及计算机可读存储介质 | |
CN107861990B (zh) | 一种视频搜索方法及系统、终端设备 | |
CN112527276B (zh) | 一种可视化编程工具中的数据更新方法、装置及终端设备 | |
CN112348688B (zh) | 车险风控分析方法、装置、终端设备及存储介质 | |
CN114880523A (zh) | 字符串处理方法、装置、电子设备及存储介质 | |
CN110795043B (zh) | 一种分布式存储块置零方法、装置、电子设备及存储介质 | |
CN112433710A (zh) | 一种区块链智能合约生成方法、设备及存储介质 | |
CN110852083A (zh) | 一种短信模板的生成方法及装置 | |
CN110797082A (zh) | 基因测序数据的存储读取方法及系统 | |
CN114881913A (zh) | 图像瑕疵检测方法、装置、电子设备及存储介质 | |
CN112100453A (zh) | 一种字符串分布统计方法、系统、设备及计算机存储介质 | |
CN113609352B (zh) | 字符串检索方法、装置、计算机设备及存储介质 | |
EP4357955A1 (en) | Method and apparatus for adding watermark in data, and related device | |
CN116149546B (zh) | 一种基于大数据平台的数据安全存储方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |