一种实现内存文件系统的方法以及相关装置制造方法及图纸

技术编号:35608326 阅读:9 留言:0更新日期:2022-11-16 15:31
本发明专利技术公开了一种实现内存文件系统的方法以及相关装置,方法包括:创建内存文件引擎构造器类,并实现创建抽象文件系统构造器接口,完成内存文件引擎的注册;通过所述内存文件引擎的内存文件创建接口创建内存文件;当用户调用操作文件接口对内存文件进行操作时,识别所述内存文件的路径,当所述内存文件的路径中包含预设前缀时,创建内存文件引擎对象并返回给QT框架;将所述内存文件的路径传入所述内存文件引擎对象,并对所述内存文件的路径进行保存;根据所述内存文件的路径查询内存哈希表是否存在所述文件的文件名,若不存在,则不进行处理;若存在,则调用所述内存文件引擎对象进行操作。本发明专利技术通过在内存中创建文件实现对文件的读写等操作。文件的读写等操作。文件的读写等操作。

【技术实现步骤摘要】
一种实现内存文件系统的方法以及相关装置


[0001]本专利技术涉及文件系统
,尤其涉及一种实现内存文件系统的方法以及相关装置。

技术介绍

[0002]现有的QT编程技术只能创建、读写硬盘文件,例如显示一张图片、读写配置文件等,都需要使用硬盘路径,却不能创建、读写内存文件。

技术实现思路

[0003]本专利技术提供了一种实现内存文件系统的方法以及相关装置,旨在解决现有QT编程技术不能创建、读写内存文件的问题。
[0004]第一方面,本专利技术实施例提供了一种实现内存文件系统的方法,包括:
[0005]创建内存文件引擎构造器类,实现创建抽象文件系统构造器接口,完成内存文件引擎的注册,并创建用于存储路径字符串与二进制对象的映射关系的内存哈希表;
[0006]通过所述内存文件引擎的内存文件创建接口创建内存文件;
[0007]当用户调用操作文件接口对内存文件进行操作时,识别所述内存文件的路径,当所述内存文件的路径中包含预设前缀时,创建内存文件引擎对象并返回给QT框架;
[0008]将所述内存文件的路径传入所述内存文件引擎对象,并对所述内存文件的路径进行保存;
[0009]根据所述内存文件的路径查询内存哈希表是否存在所述文件的文件名,若不存在,则不进行处理;若存在,则调用所述内存文件引擎对象进行操作。
[0010]第二方面,本专利技术实施例提供了一种实现内存文件系统的装置,包括:
[0011]注册单元,用于创建内存文件引擎构造器类,实现创建抽象文件系统构造器接口,完成内存文件引擎的注册,并创建用于存储路径字符串与二进制对象的映射关系的内存哈希表;
[0012]创建单元,用于通过所述内存文件引擎的内存文件创建接口创建内存文件;
[0013]识别单元,用于当用户调用操作文件接口对内存文件进行操作时,识别所述内存文件的路径,当所述内存文件的路径中包含预设前缀时,创建内存文件引擎对象并返回给QT框架;
[0014]保存单元,用于将所述内存文件的路径传入所述内存文件引擎对象,并对所述内存文件的路径进行保存;
[0015]查询单元,用于根据所述内存文件的路径查询内存哈希表是否存在所述文件的文件名,若不存在,则不进行处理;若存在,则调用所述内存文件引擎对象进行操作。
[0016]第三方面,本专利技术实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的实现内存文件系统的方法。
[0017]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时实现上述第一方面所述的实现内存文件系统的方法。
[0018]本专利技术实施例提供了一种实现内存文件系统的方法,包括:创建内存文件引擎构造器类,实现创建抽象文件系统构造器接口,完成内存文件引擎的注册,并创建用于存储路径字符串与二进制对象的映射关系的内存哈希表;通过所述内存文件引擎的内存文件创建接口创建内存文件;当用户调用操作文件接口对内存文件进行操作时,识别所述内存文件的路径,当所述内存文件的路径中包含预设前缀时,创建内存文件引擎对象并返回给QT框架;将所述内存文件的路径传入所述内存文件引擎对象,并对所述内存文件的路径进行保存;根据所述内存文件的路径查询内存哈希表是否存在所述文件的文件名,若不存在,则不进行处理;若存在,则调用所述内存文件引擎对象进行操作。该方法通过在内存中创建文件实现对文件的读写等操作,填补了QT编程无法创建、操作内存文件的技术空白,通过QT原生的接口可以十分方便地操作内存文件,解决并满足了QML(QT的界面脚本框架)显示内存图片文件的需求。本专利技术实施例同时还提供了一种实现内存文件系统的装置、一种计算机可读存储介质和一种计算机设备,具有上述有益效果,在此不再赘述。
附图说明
[0019]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本专利技术实施例所提供的实现内存文件系统的方法的流程示意图;
[0021]图2为本专利技术实施例所提供的实现内存文件系统的装置的示意性框图。
具体实施方式
[0022]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0023]应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0024]还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0025]还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0026]请参阅图1,本专利技术实施例提供了一种实现内存文件系统的方法,包括:
[0027]S101:创建内存文件引擎构造器类,实现创建抽象文件系统构造器接口,完成内存文件引擎的注册,并创建用于存储路径字符串与二进制对象的映射关系的内存哈希表;
[0028]在一个实施例中,创建MemoryFileEngineHandler(内存文件引擎构造器)类,内存文件引擎构造器类可继承于QAbstractFileEngineHandler(抽象文件系统构造器),且可实现QAbstractFileEngine*create(constQString&fileName)const(创建抽象文件系统构造器)接口,其中,创建抽象文件系统构造器接口是创建内存文件的关键入口。
[0029]其中,为方便使用内存文件系统,本专利技术实施例在内存文件引擎中创建了多个操作接口,如下所示:
[0030]内存文件创建接口、staticQStringcreateFile(constQString&fileName,const QByteArray&data);内存文件删除接口、staticboolremoveFile(constQString&fileName);内存文件数据设置接口、staticboolsetFileData(constQStrin本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现内存文件系统的方法,其特征在于,包括:创建内存文件引擎构造器类,实现创建抽象文件系统构造器接口,完成内存文件引擎的注册,并创建用于存储路径字符串与二进制对象的映射关系的内存哈希表;通过所述内存文件引擎的内存文件创建接口创建内存文件;当用户调用操作文件接口对内存文件进行操作时,识别所述内存文件的路径,当所述内存文件的路径中包含预设前缀时,创建内存文件引擎对象并返回给QT框架;将所述内存文件的路径传入所述内存文件引擎对象,并对所述内存文件的路径进行保存;根据所述内存文件的路径查询内存哈希表是否存在所述文件的文件名,若不存在,则不进行处理;若存在,则调用所述内存文件引擎对象进行操作。2.根据权利要求1所述的实现内存文件系统的方法,其特征在于,所述内存文件引擎包括:创建内存文件删除接口、内存文件创建接口以及内存文件数据设置接口。3.根据权利要求1所述的实现内存文件系统的方法,其特征在于,所述通过所述内存文件引擎的内存文件创建接口创建内存文件,包括:获取传入的文件名;判断所述文件名的字符串前缀是否包含预设前缀;若所述文件名的字符串前缀包含预设前缀,查询所述内存哈希表是否存在所述文件名,若存在所述文件名,则清空所述文件名对应的内存文件,并将所述内存文件的二进制对象大小设置为0;若不存在所述文件名,则插入二进制对象,并建立路径字符串到二进制对象的映射关系并存储于内存哈希表中,将所述二进制对象清空,并将所述内存文件的二进制对象大小设置为0。4.根据权利要求3所述的实现内存文件系统的方法,其特征在于,所述通过所述内存文件引擎的内存文件创建接口创建内存文件,还包括:若所述文件名的字符串前缀不包含预设前缀,则将所述预设前缀加入所述文件名中,并创建一项路径字符串到二进制对象的映射关系,并将所述映射关系存储至内存哈希表中。5.根据权利要求1所述的实现内存文件系统的方法,其特征在于,所述调用所述内存文件引擎对象进行操作包括:通过内存文件的路径查询所述内存哈希表并获取对应的二进制对象,比对所述二进制对象大小与最大长度参...

【专利技术属性】
技术研发人员:罗钟慧江泽龙
申请(专利权)人:深圳软牛科技有限公司
类型:发明
国别省市:

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

1