CN101404034A - 文件存储和查找的方法及装置 - Google Patents
文件存储和查找的方法及装置 Download PDFInfo
- Publication number
- CN101404034A CN101404034A CNA2008102267045A CN200810226704A CN101404034A CN 101404034 A CN101404034 A CN 101404034A CN A2008102267045 A CNA2008102267045 A CN A2008102267045A CN 200810226704 A CN200810226704 A CN 200810226704A CN 101404034 A CN101404034 A CN 101404034A
- Authority
- CN
- China
- Prior art keywords
- file
- block
- memory cell
- storage
- index
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例公开了一种文件存储和查找的方法及装置,涉及文件管理技术,为提高对文件管理的可靠性而发明。其中所述文件存储方法,包括:获取存储有第一分块文件的第一分块存储单元的索引;将当前分块文件存储在当前分块存储单元中;在所述当前分块存储单元中记录所述索引。本发明主要应用在文件管理技术中。
Description
技术领域
本发明涉及文件管理技术,尤其涉及一种文件存储和查找的方法及装置。
背景技术
在嵌入式系统中,通常是在非易失存储介质上存储数据;并且根据各系统处理能力的不同,一般会采用合适的文件存储和查找的方法即文件系统。
例如,在采用高端处理器(如X86、ARM)或芯片资源较多的微控制器(如16位、32位单片机等)中运行的嵌入式操作系统(如Linux、Windows CE、UC/OS等),可以采用同PC机一样的文件系统,如FAT16、FAT32、EXT2、EXT3等。在采用低成本、芯片资源相对紧缺的8位、16位或32位的微控制器中,一般难以运行嵌入式操作系统,虽然这种低端嵌入式系统也可以通过软件方法支持如FAT16、FAT32、EXT2、EXT3等文件系统,但实现方法较为繁琐。因此,在低端嵌入式系统中可以采用自定义的文件存储和查找方法,如采用简单索引方式的文件存储和查找方法,标识和文件长度相结合的文件存储和查找方法,以及正向链表式的文件存储和查找方法等。下面分别对上述三种文件存储和查找方法进行简单介绍。
1、采用简单索引方式的文件存储和查找方法:这种文件存储和查找方法是通过采用索引表的方式进行文件的存储和查找。具体是先将存储介质进行分块处理,并为每个分块设置一个索引。当向每个分块中存储文件时,在索引表中记录保存所述文件的各分块的索引。在查找文件时,也是根据索引表来查找文件。
这种文件存储和查找方法的优点是查找文件的速度快,实现方便等。但是,由于索引表需要频繁更新,一旦在更新索引表时出现系统掉电,那么就可能导致所有文件都丢失,而使得这种进行文件的存储和查找方式的可靠性很低。
2、标识和文件长度相结合的文件存储和查找方法:在这种方法中,不将存储介质进行分块处理,而是将存储介质看作是连续的区域,所有的文件顺序存放。在查找文件的过程中,通过文件标识和文件的长度查找到对应文件的起始存储位置和结束位置。
这种文件存储和查找方法的优点是文件查找简单,能够节约存储空间等。但是,由于某个文件的定位都基于之前所有文件的长度,也就是说只有获取该文件之前所有文件的长度才能定位该文件,因此这就造成了文件查找速度慢的问题。并且,如果某个文件的长度记录出现问题的话,将影响后续其他文件的存储和查找,也影响了文件存储和查找的可靠性。
3、正向链表式的文件存储和查找方法:在这种方法中,同样是将存储介质进行分块,并且文件可以跨分块存储。在存储文件时,在某个分块存储文件时,还要存储有该文件所要存储的下一个分块的索引。在查找文件时,需要在查找到当前分块的文件后,在当前分块中获得存储该文件的下一分块的索引。然后根据该索引再去读取下一分块的文件内容。
这种文件存储和查找方法的优点是文件查找简单、速度快,实现方便等。但是,在这种方式中,如果某个保存文件的分块中的下一分块的索引出现问题,将造成后续所有的分块不能被访问,而导致该文件较多的数据丢失。并且,在某些存储介质上,可能存在的坏区的情况。那么由于“下一分块的索引”是事先确定下来的,而在将文件存储到“下一分块”时,如果该“下一分块”是个坏块,文件就必须放到其他的分块中。这样,“下一分块的索引”就必须修改。由此将造成互相嵌套的问题,软件处理难度较大,在低端嵌入式系统中基本无法解决。因此,这种方式下的文件存储和查找的可靠性较低。
发明内容
本发明的实施例提供一种文件存储和查找的方法及装置,以提高对文件管理的可靠性。
为达到上述目的,本发明的实施例文件存储方法采用如下技术方案:
一种文件存储方法,包括如下步骤:
获取存储有第一分块文件的第一分块存储单元的索引;
将当前分块文件存储在当前分块存储单元中;
在所述当前分块存储单元中记录所述索引。
为达到上述目的,本发明的实施例文件存储装置采用如下技术方案:
一种文件存储装置,包括:
索引获取单元,用于获取存储有第一分块文件的第一分块存储单元的索引;
存储单元,用于将当前分块文件存储在当前分块存储单元中;
记录单元,用于在所述当前分块存储单元中记录所述索引。
为达到上述目的,本发明的实施例文件查找方法采用如下技术方案:
一种文件查找方法,包括如下步骤:
查找到存储有第一分块文件的第一分块存储单元;
查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的各分块文件。
为达到上述目的,本发明的实施例文件查找装置采用如下技术方案:
一种文件查找装置,包括:
查找单元,用于查找到存储有第一分块文件的第一分块存储单元;
分块文件获取单元,用于查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的各分块文件。
利用本发明实施例所述的技术方案,通过采用反向索引的方式,即在存储分块文件的分块存储单元中记录保存第一分块文件的第一分块存储单元的索引,因此,在查找文件时,可在查找到第一分块存储单元后,查找具有存储有所述第一分块存储单元的索引的各分块存储单元,从而获取相应的分块文件。利用本发明实施例的技术方案,避免了现有技术的正向链表式的文件存储和查找方法中由于某个分块存储单元损坏而造成的无法查找读取后续分块文件的缺陷。因此,利用本发明实施例的技术方案能够提高对文件管理的可靠性。
附图说明
图1为本发明实施例一文件存储方法的流程图;
图2为本发明实施例一文件存储方法的示意图;
图3为本发明实施例二文件查找方法的流程图;
图4为本发明实施例三文件存储装置的示意图;
图5为本发明实施例三文件存储装置的结构图;
图6为本发明实施例四文件存储装置的示意图;
图7为本发明实施例四文件存储装置的结构图;
图8为本发明实施例五中的文件存储示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
如图1所示,本发明实施例一提供了一种文件存储方法,如图1所示,包括如下步骤:
步骤11、获取存储有第一分块文件的第一分块存储单元的索引。
步骤12、将当前分块文件存储在当前分块存储单元中。
在此步骤中,所述的当前分块存储单元可以为第一分块存储单元,也可以是其他的分块存储单元。
步骤13、在所述当前分块存储单元中记录所述索引。
此外,为方便查找,如图2所示,在所述步骤11前还可包括:
步骤10、为存储所述第一分块文件的第一分块存储单元设置标识。
另外,为方便从各分块文件中恢复文件,对于具有顺序要求的文件,如文件内容为一段连续的文字,在所述当前分块存储单元中还可存储有所述当前分块文件的顺序号。此外,为进一步准确的恢复文件,各分块文件的顺序号可以互不相同。
而对于文件组织没有顺序要求的文件,如文件内容为内容类似的多条记录集合,则可以不存储各分块文件的顺序号。但是需要注意的是,在存储分块文件时,需要保证一条记录内容完整保存在同一个分块内,而不能跨块存储。
利用本发明实施例一的技术方案,不仅文件存储简单,所需的芯片资源少,而且能够提高对文件管理的可靠性。
如图3所示,本发明实施例二提供了一种文件查找方法,包括如下步骤:
步骤31、根据第一分块存储单元的标识,查找到存储有第一分块文件的第一分块存储单元。当然,也可以通过其他方式查找所述第一分块存储单元。
步骤32、查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的各分块文件。
另外,为便于恢复文件,对于在存储时有顺序要求的文件,由于在存储其各分块文件的同时存储了各分块文件的顺序号,因此对于上述的文件,在获取各分块文件的同时,还需要获取存储在所述各分块存储单元中对应的分块文件的顺序号,然后按照各分块文件的顺序号,将各分块文件恢复成所述文件。而对于一些对顺序没有要求的文件,则可直接将获取到的分块文件进行拼凑,然后恢复成文件。
利用本发明实施例二的技术方案,避免了现有技术的正向链表式的文件存储和查找方法中由于某个分块存储单元损坏而造成的无法查找读取后续分块文件的缺陷。因此,利用本发明实施例的技术方案能够提高对文件管理的可靠性。
与实施例一的文件存储方法相对应,本发明实施例三提供了一种文件存储装置,如图4所示,包括:索引获取单元41,存储单元42以及记录单元43其中,所述索引获取单元41,用于获取存储有第一分块文件的第一分块存储单元的索引;所述存储单元42,用于将当前分块文件存储在当前分块存储单元中;所述记录单元43,用于在所述当前分块存储单元中记录所述索引。
为方便查找,如图5所示所述装置还包括:标识设置单元44,用于为存储所述第一分块文件的第一分块存储单元设置标识。
与实施例一中描述的相同,对于具有顺序要求的文件,如文件内容为一段连续的文字,为方便从各分块文件中恢复文件,所述记录单元43还用于存储所述当前分块文件的顺序号。而对于文件组织没有顺序要求的文件,如文件内容为内容类似的多条记录集合,则可以不存储各分块文件的顺序号。但是需要注意的是,在存储分块文件时,需要保证一条记录内容完整保存在同一分块存储单元内,而不能跨块存储。
利用本发明实施例三的技术方案,不仅文件存储简单,所需的芯片资源少,而且能够提高对文件管理的可靠性。
与实施例二的文件存储方法相对应,本发明实施例四提供了一种文件查找装置,如图6所示,包括:查找单元51以及分块文件获取单元52。其中所述查找单元51用于查找到存储有第一分块文件的第一分块存储单元;所述分块文件获取单元52,用于查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的分块文件。
此外,对于在存储时有顺序要求的文件,由于在存储其各分块文件的同时存储了各分块文件的顺序号,因此,所述分块文件获取单元52还用于在获取各分块文件的同时,获取存储在所述各分块存储单元中对应的分块文件的顺序号,以方便从各分块文件中恢复文件。如图7所示,所述装置还可包括:文件恢复单元53,用于根据所述文件获取单元52所获取的各分块文件的顺序号,将分块文件恢复成所述文件。而对于一些对顺序没有要求的文件,则可直接由文件获取单元52将获取到的分块文件进行拼凑,恢复成文件。
利用本发明实施例四的技术方案,避免了现有技术的正向链表式的文件存储和查找方法中由于某个分块存储单元损坏而造成的无法查找读取后续分块文件的缺陷。因此,利用本发明实施例的技术方案能够提高对文件管理的可靠性。
下面结合实施例五详细描述一下是如何利用本发明实施例所述的文件存储和查找的方法实现对文件的管理的。
在实施例五中,以广泛使用的NAND Flash作为非易失性存储介质,并将NANDFlash进行分块管理。在NAND Flash中的各存储块一般有256页,每页528字节,存储有第一文件块的存储块的反向索引和各分块文件的顺序号保存在528字节的后16个字节中,文件内容保存在其余的512字节中。顺序号从0x0001往上计数,直到0xFFFF。由于NAND Flash中的块一般不会超过65536个,所以这两个字节的顺序号已经满足唯一顺序号的要求。
如图8所示,当存储文件A时,先将第一文件块写入NAND Flash的第一分块,并将第一分块用标识0x00标为存储文件A的第一分块,假定存储文件A的第一分块的索引为0x01。然后扫描得到NAND Flash中的空闲块,将第二文件块写入NAND Flash的第四分块,该第四分块用索引0x01记录文件A的第一文件块所在的第一分块,并写入顺序号0x0001。当然,如果文件A的内容是没有顺序要求的,则可以不写入顺序号。依此类推,将其他分块文件写入第二分块、第五分块等,直到将文件A存储完毕。如果在存储的过程中,第二文件块写入第四分块时出错,则可以换一个分块写入,而索引和顺序号的不必改变。
当查找文件时,首先扫描NAND Flash,获得标识为0x00的第一分块。然后根据事先在所述各第一分块中为各文件添加的标识或各文件的名称,确定所需查找的文件。在此实施例中,我们可根据扫描到的标识为0x00的第一分块中所存储的对应文件A的名称来确定第一分块中存储的为文件A的分块文件,假定存储文件A第一分块文件的第一分块的索引是0x01,存储其他文件第一分块文件的第一分块的索引可以依次类推。然后扫描NAND Flash,获得保存有“第一分块的索引0x01及当前顺序号0x0001”的第四分块,继续扫描获得保存有“第一分块的索引0x01及当前顺序号0x0002”的第二分块,依此扫描获得NAND Flash的第五分块。将第一分块、第四分块、第二分块、第五分块的分块文件进行拼凑,即得到文件A。或者,也可以是扫描所有具有第一分块的索引0x01的块,然后根据当前顺序号把所有文件拼凑起来,获得文件A。当然,如果文件A的内容是没有顺序要求,则扫描所有具有第一分块的索引0x01的块,并将所有文件拼凑起来即可。如果NAND Flash出现异常,例如导致第四分块的数据无法读取时,文件A将只会丢失第四分块的数据,而第一分块、第二分块、第五分块的数据仍可以找到。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Acces s Memory,RAM)等。
综上所述,利用本发明实施例所述的技术方案,通过采用反向索引的方式,即在存储分块文件的分块存储单元中记录保存第一分块文件的第一分块存储单元的索引,因此,在查找文件时,可在查找到第一分块存储单元后,查找具有存储有所述第一分块存储单元的索引的各分块存储单元,从而获取相应的分块文件。利用本发明实施例的技术方案,避免了现有技术的正向链表式的文件存储和查找方法中由于某个分块存储单元损坏而造成的无法查找读取后续分块文件的缺陷。因此,利用本发明实施例的技术方案能够提高对文件管理的可靠性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1、一种文件存储方法,其特征在于,所述方法包括如下步骤:
获取存储有第一分块文件的第一分块存储单元的索引;
将当前分块文件存储在当前分块存储单元中;
在所述当前分块存储单元中记录所述索引。
2、根据权利要求1所述的文件存储方法,其特征在于,在将当前分块文件存储在当前分块存储单元中的步骤前,所述方法还包括:
为存储所述第一分块文件的第一分块存储单元设置标识。
3、根据权利要求1或2所述的文件存储方法,其特征在于,在所述当前分块存储单元中还存储有所述当前分块文件的顺序号。
4、一种文件查找方法,其特征在于,所述方法包括如下步骤:
查找到存储有第一分块文件的第一分块存储单元;
查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的各分块文件。
5、根据权利要求4所述的文件查找方法,其特征在于,所述方法还包括:在获取各分块文件的同时,还获取存储在所述各分块存储单元中对应的分块文件的顺序号。
6、根据权利要求5所述的文件查找方法,其特征在于,所述方法还包括:
按照各分块文件的顺序号,将分块文件恢复成所述文件。
7、一种文件存储装置,其特征在于,所述装置包括:
索引获取单元,用于获取存储有第一分块文件的第一分块存储单元的索引;
存储单元,用于将当前分块文件存储在当前分块存储单元中;
记录单元,用于在所述当前分块存储单元中记录所述索引。
8、根据权利要求7所述的文件存储装置,其特征在于,所述装置还包括:
标识设置单元,用于为存储所述第一分块文件的第一分块存储单元设置标识。
9、根据权利要求7或8所述的文件存储装置,其特征在于,所述记录单元还用于存储所述当前分块文件的顺序号。
10、一种文件查找装置,其特征在于,所述装置包括:
查找单元,用于查找到存储有第一分块文件的第一分块存储单元;
分块文件获取单元,用于查找具有存储有所述第一分块存储单元的索引的各分块存储单元,获取相应的各分块文件。
11、根据权利要求10所述的文件查找装置,其特征在于,所述分块文件获取单元还用于在获取各分块文件的同时,获取存储在所述各分块存储单元中对应的分块文件的顺序号。
12、根据权利要求11所述的文件查找装置,其特征在于,所述装置还包括:
文件恢复单元,用于按照各分块文件的顺序号,将分块文件恢复成所述文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102267045A CN101404034A (zh) | 2008-11-20 | 2008-11-20 | 文件存储和查找的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102267045A CN101404034A (zh) | 2008-11-20 | 2008-11-20 | 文件存储和查找的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101404034A true CN101404034A (zh) | 2009-04-08 |
Family
ID=40538046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102267045A Pending CN101404034A (zh) | 2008-11-20 | 2008-11-20 | 文件存储和查找的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101404034A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521312A (zh) * | 2011-12-01 | 2012-06-27 | 深圳市航天泰瑞捷电子有限公司 | 一种文件索引的存储方法及文件系统 |
CN104537023A (zh) * | 2014-12-19 | 2015-04-22 | 华为技术有限公司 | 一种反向索引记录的存储方法及装置 |
CN107526746A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 管理文档索引的方法和设备 |
CN110688645A (zh) * | 2019-10-10 | 2020-01-14 | 安康学院 | 一种基于计算机验证码技术的大数据分析系统 |
CN112394876A (zh) * | 2019-08-14 | 2021-02-23 | 深圳市特思威尔科技有限公司 | 大文件存储/读取方法、存储/读取装置和计算机设备 |
-
2008
- 2008-11-20 CN CNA2008102267045A patent/CN101404034A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521312A (zh) * | 2011-12-01 | 2012-06-27 | 深圳市航天泰瑞捷电子有限公司 | 一种文件索引的存储方法及文件系统 |
CN102521312B (zh) * | 2011-12-01 | 2015-05-13 | 深圳市航天泰瑞捷电子有限公司 | 一种文件索引的存储方法及文件系统 |
CN104537023A (zh) * | 2014-12-19 | 2015-04-22 | 华为技术有限公司 | 一种反向索引记录的存储方法及装置 |
CN104537023B (zh) * | 2014-12-19 | 2018-07-31 | 华为技术有限公司 | 一种反向索引记录的存储方法及装置 |
CN107526746A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 管理文档索引的方法和设备 |
US11068536B2 (en) | 2016-06-22 | 2021-07-20 | EMC IP Holding Company LLC | Method and apparatus for managing a document index |
CN112394876A (zh) * | 2019-08-14 | 2021-02-23 | 深圳市特思威尔科技有限公司 | 大文件存储/读取方法、存储/读取装置和计算机设备 |
CN112394876B (zh) * | 2019-08-14 | 2024-02-23 | 深圳市特思威尔科技有限公司 | 大文件存储/读取方法、存储/读取装置和计算机设备 |
CN110688645A (zh) * | 2019-10-10 | 2020-01-14 | 安康学院 | 一种基于计算机验证码技术的大数据分析系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
US8959301B2 (en) | Accessing data in a storage system | |
CN103164490B (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN101582084B (zh) | 一种数据存储的方法及装置 | |
US9804961B2 (en) | Flash memory file system and method using different types of storage media | |
CN101404034A (zh) | 文件存储和查找的方法及装置 | |
CN102289526B (zh) | 一种hfs+文件系统数据恢复方法及装置 | |
CN103377143A (zh) | 存储器管理方法、存储器控制器与存储器存储装置 | |
CN101452422A (zh) | 一种芯片的数据读写方法、相应装置和系统 | |
JP2008503818A (ja) | コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法 | |
CN101303667B (zh) | 建立磁盘空簇表及查找磁盘空簇的方法和装置 | |
CN102609531A (zh) | 一种根据关键字反查文件的方法 | |
CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
CN102331920A (zh) | 一种数据处理方法及装置 | |
US20090112951A1 (en) | Apparatus and method of managing files and memory device | |
CN104133640B (zh) | 从休眠快速恢复 | |
US20120260022A1 (en) | Handling commands within a write-once read-many storage device configuration | |
KR100987320B1 (ko) | 고속 파일 복구가 가능한 fat 파일시스템을 사용한데이터 처리장치 및 데이터 처리방법 | |
WO2009110665A1 (en) | Information storage medium for recording data according to journaling file system, and method of and apparatus for writing/recovering data using journaling file system | |
CN111338562B (zh) | 数据存储装置与数据处理方法 | |
KR20090119481A (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
US20100250837A1 (en) | Method for Addressing Page-Oriented Non-Volatile Memories | |
US7206893B2 (en) | Linking method under mother and child block architecture for building check area and logic page of the child block | |
CN105630692A (zh) | 一种利用mram存储文件目录的文件存储系统 | |
KR100479170B1 (ko) | 메모리 억세스 제어장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090408 |