CN108345671A - 文件存储方法、装置和终端 - Google Patents
文件存储方法、装置和终端 Download PDFInfo
- Publication number
- CN108345671A CN108345671A CN201810133597.5A CN201810133597A CN108345671A CN 108345671 A CN108345671 A CN 108345671A CN 201810133597 A CN201810133597 A CN 201810133597A CN 108345671 A CN108345671 A CN 108345671A
- Authority
- CN
- China
- Prior art keywords
- file
- files
- memory
- information
- instruction
- 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
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及一种文件存储方法、装置和终端,所述方法包括:获取至少两个第一文件各自的文件信息;根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;将所述至少两个第二文件组成一个文件链表;将所述文件链表写入存储器中。可以充分利用存储空间,并提升存储效率。
Description
技术领域
本发明实施例涉及数据管理技术领域,特别涉及一种文件存储方法、装置和终端。
背景技术
在大数据时代,各种控制系统交互的数据越来越多,需要存储的数据也越来越多,存储的数据与存储的容量之间的矛盾越来越大。尤其在单片机及低成本嵌入式系统中,由于存储资源有限,存储的数据与存储的容量之间的矛盾越发突出。
当前,在没有文件系统的应用中,多文件单独存储导致残存空间增大,影响了存储效率。
发明内容
本发明实施例的目的是提供一种文件存储方法、装置和终端,能提高存储效率,减少残余存储空间。
第一方面,本发明实施例提供了一种文件存储方法,所述方法包括:
获取至少两个第一文件各自的文件信息;
根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;
将所述至少两个第二文件组成一个文件链表;
将所述文件链表写入存储器中。
可选的,所述方法还包括:
若所述至少两个第二文件中存在待加密文件,对所述待加密文件进行加密。
可选的,所述方法还包括:
获取文件读取指令,并根据所述文件读取指令确定文件读取信息;
根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
可选的,所述文件信息包括:
文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小、文件类型中的至少一种。
第二方面,本发明实施例提供了一种文件存储装置,所述装置包括:
读取模块,用于获取至少两个第一文件各自的文件信息;
写入模块,用于根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;
组合模块,用于将所述至少两个第二文件组成一个文件链表;
存储模块,用于将所述文件链表写入存储器中。
可选的,所述装置还包括:
加密模块,用于若所述至少两个第二文件中存在待加密文件,对所述待加密文件进行加密。
可选的,所述装置还包括:
读取指令获取模块,用于获取文件读取指令,并根据所述文件读取指令确定文件读取信息;
文件读取模块,用于根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
可选的,所述文件信息包括:
文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小和文件类型。
第三方面,本发明实施例提供了一种终端,包括:
至少一个处理器;
所述处理器与所述终端内置或者外置的至少一个存储单元连接;
其中,所述存储单元存储有可被所述至少一个处理器执行的指令;
所述处理器执行所述指令以实现上述的方法。
第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被终端执行时,实现上述的方法。
本发明实施例通过获取存储器内至少两个第一文件的文件信息,根据所述至少两个第一文件各自的文件信息以及预设文件结构得到至少两个第二文件,然后将该至少两个第二文件组成一个文件链表,并将该文件链表写入存储器。将多个文件重组成一个文件进行存储,减少了剩余残存空间,提高了存储效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明文件存储方法的一个实施例的流程示意图;
图2是本发明文件存储方法的一个实施例中读取文件的流程示意图;
图3是本发明文件存储装置的一个实施例的结构示意图;
图4是本发明文件存储装置的一个实施例的结构示意图;
图5是本发明文件存储装置的一个实施例的结构示意图;
图6是本发明实施例提供的终端的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的文件存储方法和装置原则上适用于任何数据存储过程以及能够进行数据存储的装置或者系统。该装置或者系统例如单片机等嵌入式系统、服务器、各种终端装置等,例如无人飞行器、遥控器、计算机、智能终端、汽车诊断设备、交通工具专用设备,如胎压设备、车辆通信接口(Vehicle Communication Interface,VCI)等。
该装置或系统包括内置或者外置的存储器,以及处理器,所述处理器与存储器通信连接。处理器会将数据以文件的形式写入存储器中。该数据可以是外部设备向该装置或系统传输的,或者是处理器在运行时生成的。
例如,一种应用场景下,汽车诊断设备或者交通工具专用设备等终端中需要存储多种类型的诊断文件、诊断数据、交通工具的相关文件等等。
当前,处理器会将文件写入存储器中,存储器为每个文件分配的存储空间相同,由于各文件的大小不同,其所在的存储空间中会存在残存空间,即在残存空间中未存储有任何数据,并且残存空间不可被再利用。
为解决该技术问题,下面结合附图介绍本申请实施例。
图1为本发明实施例提供的一种文件存储方法的流程示意图,所述方法可以由一终端执行,如图1所示,所述存储方法包括:
101:获取至少两个第一文件各自的文件信息。
即获取存储器内的至少两个第一文件的文件信息,所述文件信息例如文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小、文件类型等信息中的至少一个。
一种实现方式中,可以调用系统函数FindFirstFileA找到指定存储空间内的文件,再调用系统函数FindNextFileA将指定存储空间内的文件读取出来,其中可以读取指定空间内的部分文件也可以读取全部文件。父节点信息、子节点信息和兄弟节点信息,可以按照至少两个文件被读出的顺序来定义,读取时位于同一文件夹内的文件作为兄弟节点,位于上一层文件夹中的文件作为父节点,位于下一层文件夹中的文件作为子节点。
102:根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件。
将至少两个第一文件各自的文件信息按预设文件结构类型写进文件结构中,获得至少两个文件结构,即至少两个第二文件。
一种实现方式中,可以利用write函数将文件写入文件结构。其中,可选的,所述预设文件结构类型包括文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小和文件类型等信息。例如可以采用如下数据结构:
103:将所述至少两个第二文件组成一个文件链表。
具体的,可以根据所述第二文件的父节点信息、子节点信息以及兄弟节点信息中的一个或多个节点信息将所述至少两个第二文件组成一个文件链表,以此将该至少两个第二文件连接起来组成一个整体。
104:将所述文件链表写入存储器中。
本发明实施例通过获取存储器内至少两个第一文件的文件信息,根据所述至少两个第一文件各自的文件信息以及预设文件结构得到至少两个第二文件,然后将该至少两个第二文件组成一个文件链表,并将该文件链表写入存储器。将多个文件重组成一个文件进行存储,减少了剩余残存空间,提高了存储效率。
通过如上所述的方法,多个文件被重组成一个文件进行存储,读取文件时,需要在链表中查找文件并读取,具体的,如图2所示,读取文件的方法包括:
105:获取文件读取指令,并根据所述文件读取指令确定文件读取信息。
其中,所述文件读取信息例如文件名、文件路径等信息。
106:根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
即根据所述文件读取信息在文件链表中查找文件所述的位置并进行读取,具体的,可以根据文件名和文件路径在数据链表的各个节点中查找具有该文件名的节点,当找到该文件名时,将对应节点中的数据读取出来。
可选的,为了提高文件的安全性,可以对一些关键文件进行加密,可以在组成链表前对各个第二文件中的关键文件进行加密,也可以在组成链表后整体对链表结构进行加密。也可以既在组成链表前对部分或者全部第二文件加密,又在组成链表后对整个链表再次加密,这样安全性更高。在实际应用中,可以利用Encrypt函数进行文件加密。其中,判断是否是关键文件或者待加密文件,可以在为文件或者文件夹命名,或者为文件或者文件夹设置属性时添加标识(例如将标识添加到上述结构中的notuse[11])。这样可以通过该标识识别是否是关键文件或者待加密文件。
相应的,本发明实施例还提供了一种文件存储装置,可以用于终端,如图3所示,存储装置300包括:
读取模块301,用于获取至少两个第一文件各自的文件信息;
写入模块302,用于根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;
组合模块303,用于将所述至少两个第二文件组成一个文件链表;
存储模块304,用于将所述文件链表写入存储器中。
本发明实施例通过获取存储器内至少两个第一文件的文件信息,根据所述至少两个第一文件各自的文件信息以及预设文件结构得到至少两个第二文件,然后将该至少两个第二文件组成一个文件链表,并将该文件链表写入存储器。将多个文件重组成一个文件进行存储,减少了剩余残存空间,提高了存储效率。
可选的,在存储装置300的其他实施例中,如图4所示,存储装置300还包括:加密模块305,用于若所述至少两个第二文件中存在待加密文件,对所述待加密文件进行加密。
可选的,在存储装置300的某些实施例中,所述文件信息包括:
文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小和文件类型。
可选的,在存储装置300的其他实施例中,如图5所示,存储装置300还包括:
读取指令获取模块306,用于获取文件读取指令,并根据所述文件读取指令确定文件读取信息;
文件读取模块307,用于根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
需要说明的是,上述文件存储装置可执行本申请实施例所提供的文件存储方法,具备执行文件存储方法相应的功能模块和有益效果。未在装置实施例中详尽描述的技术细节,可参见本申请实施例所提供的文件存储方法。
图6是本发明实施例提供的终端10的硬件结构示意图,如图6所示,终端10包括:
一个或多个处理器11和存储单元12(图6中以一个处理器11为例)。处理器11和存储单元12可以通过总线或者其他方式连接(图6中以通过总线相连为例)。
终端10还可以包括存储器,用于存储文件,存储单元12可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块(在仅包括存储单元12的场合,存储单元12也用于存储文件),如本发明实施例中的文件存储方法对应的程序指令/单元(例如,附图3所示的读取模块301、写入模块302、组合模块303和存储模块304)。处理器11通过运行存储在存储单元12中的非易失性软件程序、指令以及单元,从而执行终端10的各种功能应用以及数据处理,即实现上述方法实施例的存储方法。
存储单元12可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据终端10使用所创建的数据等。此外,存储单元12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储单元12可选包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储单元12中,当被所述一个或者多个处理器11执行时,执行上述任意方法实施例中的存储方法,例如,执行以上描述的图1中的方法101-104,图2中的方法105-106,实现图3所示的模块301-304、图4中的模块301-305、图5中的模块301-307的功能。
上述终端10可执行本发明实施例所提供的文件存储方法,具备执行方法相应的功能模块和有益效果。未在终端10实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行上述任意方法实施例中的存储方法,例如,例如,执行以上描述的图1中的方法101-104,图2中的方法105-106,实现图3所示的模块301-304、图4中的模块301-305、图5中的模块301-307的功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域普通技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种文件存储方法,其特征在于,所述方法包括:
获取至少两个第一文件各自的文件信息;
根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;
将所述至少两个第二文件组成一个文件链表;
将所述文件链表写入存储器中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述至少两个第二文件中存在待加密文件,对所述待加密文件进行加密。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取文件读取指令,并根据所述文件读取指令确定文件读取信息;
根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
4.根据权利要求1-3任一项所述的存储方法,其特征在于,所述文件信息包括:
文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小、文件类型中的至少一种。
5.一种文件存储装置,其特征在于,所述装置包括:
读取模块,用于获取至少两个第一文件各自的文件信息;
写入模块,用于根据所述至少两个第一文件各自的文件信息以及预设文件结构,得到至少两个第二文件;
组合模块,用于将所述至少两个第二文件组成一个文件链表;
存储模块,用于将所述文件链表写入存储器中。
6.根据权利要求5所述的存储装置,其特征在于,所述装置还包括:
加密模块,用于若所述至少两个第二文件中存在待加密文件,对所述待加密文件进行加密。
7.根据权利要求6所述的存储装置,其特征在于,所述装置还包括:
读取指令获取模块,用于获取文件读取指令,并根据所述文件读取指令确定文件读取信息;
文件读取模块,用于根据所述文件读取信息在所述存储器中所存储的所述文件链表中读取出所述文件读取信息对应的文件。
8.根据权利要求5-7任一项所述的存储装置,其特征在于,所述文件信息包括:
文件名、父节点信息、子节点信息、兄弟节点信息、文件内容、文件大小和文件类型。
9.一种终端,其特征在于,包括:
至少一个处理器;
所述处理器与所述终端内置或者外置的至少一个存储单元连接;
其中,所述存储单元存储有可被所述至少一个处理器执行的指令;
所述处理器执行所述指令以实现权利要求1-4任一项所述的方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被终端执行时,实现权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810133597.5A CN108345671A (zh) | 2018-02-09 | 2018-02-09 | 文件存储方法、装置和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810133597.5A CN108345671A (zh) | 2018-02-09 | 2018-02-09 | 文件存储方法、装置和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108345671A true CN108345671A (zh) | 2018-07-31 |
Family
ID=62958684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810133597.5A Pending CN108345671A (zh) | 2018-02-09 | 2018-02-09 | 文件存储方法、装置和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345671A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614927A (zh) * | 2004-11-18 | 2005-05-11 | 北京锐安科技有限公司 | 在b/s结构中实现树型结构的方法 |
CN101000620A (zh) * | 2006-12-31 | 2007-07-18 | 北京握奇数据系统有限公司 | 一种在电信智能卡中存储应用数据的方法 |
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN101079036A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种海量文件的存储方法及系统 |
CN103984722A (zh) * | 2014-05-14 | 2014-08-13 | 上海上讯信息技术股份有限公司 | 带节点的文件系统及文件处理方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
-
2018
- 2018-02-09 CN CN201810133597.5A patent/CN108345671A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614927A (zh) * | 2004-11-18 | 2005-05-11 | 北京锐安科技有限公司 | 在b/s结构中实现树型结构的方法 |
CN101079036A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种海量文件的存储方法及系统 |
CN101000620A (zh) * | 2006-12-31 | 2007-07-18 | 北京握奇数据系统有限公司 | 一种在电信智能卡中存储应用数据的方法 |
CN101013400A (zh) * | 2007-01-30 | 2007-08-08 | 金蝶软件(中国)有限公司 | 一种在内存中缓存数据的方法及装置 |
CN103984722A (zh) * | 2014-05-14 | 2014-08-13 | 上海上讯信息技术股份有限公司 | 带节点的文件系统及文件处理方法 |
CN104731886A (zh) * | 2015-03-12 | 2015-06-24 | 深圳市连用科技有限公司 | 一种海量小文件的处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10003649B2 (en) | Systems and methods to improve read/write performance in object storage applications | |
US20190012235A1 (en) | Hierarchic Storage Policy for Distributed Object Storage Systems | |
CN104503708B (zh) | 数据散列存储的方法及装置 | |
US8805849B1 (en) | Enabling use of analytic functions for distributed storage system data | |
US9104511B2 (en) | Method and computation node for processing application data | |
US8600937B1 (en) | System and method for fast volume cloning | |
CN102142032B (zh) | 一种分布式文件系统的数据读写方法及系统 | |
CN111708738A (zh) | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 | |
CN106326398A (zh) | 数据一致性对比的方法及装置 | |
US20200341674A1 (en) | Method, device and computer program product for restoring data | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
CN107622207B (zh) | 加密系统级数据结构 | |
US20080005192A1 (en) | Dual logging of changes to a user preference in a computer device | |
CN106027638A (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN103164172B (zh) | 数据流存储方法及装置 | |
CN103049546B (zh) | 一种管理、访问系统日志的方法和装置 | |
CN103678360A (zh) | 一种分布式文件系统的数据存储方法和装置 | |
US9164678B2 (en) | Merging data volumes and derivative versions of the data volumes | |
CN113051038A (zh) | 云服务多租户环境下的数据访问方法及装置 | |
SG183093A1 (en) | Dual mode reader writer lock | |
US11023493B2 (en) | Intelligently scheduling resynchronization jobs in a distributed object-based storage system | |
CN108345671A (zh) | 文件存储方法、装置和终端 | |
CN116702126A (zh) | 应用访问控制方法和装置、计算设备和可读存储介质 | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
CN116225314A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180731 |