CN102841894A - 一种文件分配表的数据存储方法 - Google Patents
一种文件分配表的数据存储方法 Download PDFInfo
- Publication number
- CN102841894A CN102841894A CN2011101691535A CN201110169153A CN102841894A CN 102841894 A CN102841894 A CN 102841894A CN 2011101691535 A CN2011101691535 A CN 2011101691535A CN 201110169153 A CN201110169153 A CN 201110169153A CN 102841894 A CN102841894 A CN 102841894A
- Authority
- CN
- China
- Prior art keywords
- file
- bunch
- write
- prevariety
- continue
- 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
技术领域
本发明属于文档***的数据存储领域,具体涉及一种文件分配表的数据存储方法。
背景技术
文件分配表(英文:File Allocation Table,简称:FAT)作为一种文档***,广泛应用于各类具有数据存储功能的器件(例如SD卡)。申请人在现有的文件分配表进行数据存储时发现,当对已创建的文件进行续写时,需要从该文件的第一个簇开始,根据簇链关系依次寻找下一个簇,直至找到最后一个簇后才开始进行文件的续写,然而随着文件的容量越来越大,则使得寻找该文件的最后一个簇所花的时间也将越长,从而影响了文件的续写速度。
发明内容
为解决现有的文件分配表,由于寻找该文件的最后一个簇所花的时间较长,从而影响了文件的续写速度的技术问题,提供了一种提高文件续写速度的文件分配表的数据存储方法。
本发明的技术方案是:
一种文件分配表的数据存储方法,包括:将文件写入到磁盘内空闲状态的簇内,其特征在于:在该文件写完后记录其所写入的最后一个簇,并作为该文件的当前簇。
优选地,当文件需要续写时,在该文件写完并记录当前簇后进一步包括以下步骤:
步骤S1:获取该文件的当前簇;
步骤S2:判断当前簇是否写满,当未写满时,执行步骤S3;否则执行步骤S4;
步骤S3:先写满当前簇,接着寻找空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇;
步骤S4:寻找空闲状态的簇继续续写文件,且在该文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇。
优选地,所述寻找空闲状态的簇继续续写文件具体包括以下步骤:
步骤T1:按照预设顺序依次查找簇,并判断该簇是否为空闲状态:
步骤T2:当该簇为空闲状态时,在该簇内继续续写文件,否则返回执行步骤T1。
优选地,所述预设顺序为:距离当前簇由近到远的顺序。
优选地,所述将文件写入到磁盘内空闲状态的簇内具体为:
查询磁盘内所有簇的状态,并将磁盘内所有空闲状态的簇记录在空闲簇列表上;
根据记录的空闲簇列表获取空闲状态的簇写入文件,且实时更新记录的空闲簇列表。
优选地,当文件需要续写时,包括以下步骤:
步骤A1:获取该文件的当前簇;
步骤A2:判断当前簇是否写满,当未写满时,执行步骤A3;否则执行步骤A4;
步骤A3:先写满当前簇,接着根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇,执行步骤A5;
步骤A4:根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇, 执行步骤A5;
步骤A5:根据该文件续写所写入的簇,对记录的空闲簇列表进行更新。
优选地,所述根据记录的空闲簇列表获取空闲状态的簇继续续写文件具体为:
从记录的空闲簇列表获取空闲状态的簇,并按照距离当前簇由近到远的顺序继续续写文件。
本发明的优点:从本发明的上述技术方案可以得知,文件分配表的数据存储方法包括:将文件写入到磁盘内空闲状态的簇内,且文件在写完后记录其所写入的最后一个簇,作为该文件的当前簇,这样,由于文件在写完后记录了当前簇,因此当该文件需要续写时,可以快速找到该当前簇,并寻找空闲状态的簇继续续写文件。现有的文件分配表数据存储方法,当文件进行续写时,需要从该文件的第一个簇开始,根据簇链关系依次寻找下一个簇,直至找到最后一个簇后才开始进行文件的续写,然而随着文件的容量越来越大,则使得寻找该文件的最后一个簇所花的时间也将越长,从而影响了文件的续写速度。因此,相对现有技术来说,本发明文件分配表的数据存储方法省去了寻找最后一个簇所花的时间,从而大大提高了文件的续写速度。
附图说明
图1为本发明文件分配表的数据存储方法提供的较佳实施例的方法流程图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的文件分配表数据存储方法,当文件进行续写时,需要从该文件的第一个簇开始,根据簇链关系依次寻找下一个簇,直至找到最后一个簇后才开始进行文件的续写,而且随着文件的容量越来越大,使得寻找该文件的最后一个簇所花的时间也将越长,从而影响了文件的续写速度。为了解决现有技术存在的技术问题,申请人经过自己创造性的劳动,终于找到了解决上述技术问题的方案,即文件在写完后记录其所写入的最后一个簇,作为该文件的当前簇,这样便可省去了文件每次在续写时需寻找最后一个簇所花的时间,从而大大提高了文件的续写速度。下面详细描述本发明的技术方案。
一种文件分配表的数据存储方法,包括:将文件写入到磁盘内空闲状态的簇内,其中,在该文件写完后记录其所写入的最后一个簇,并作为该文件的当前簇。
由上述方案可知,该方案使得文件在续写时,可以快速找到该文件写入的最后一个簇(即当前簇),从而可以使得文件能够达到快速续写的目的。下面具体描述文件续写的步骤,可理解的是,以下文件续写的步骤执行于该文件写完并记录当前簇之后。
当文件需要续写时,包括以下步骤:
步骤S1:获取该文件的当前簇;
步骤S2:判断当前簇是否写满,当未写满时,执行步骤S3;否则执行步骤S4;
步骤S3:先写满当前簇,接着寻找空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇;
步骤S4:寻找空闲状态的簇继续续写文件,且在该文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇。
具体实施中,上述寻找空闲状态的簇继续续写文件可具体包括以下步骤:
步骤T1:按照预设顺序依次查找簇,并判断该簇是否为空闲状态:
步骤T2:当该簇为空闲状态时,在该簇内继续续写文件,否则返回执行步骤T1。
优选地,所述预设顺序可为:距离当前簇由近到远的顺序。可以理解的是,该预设顺序是由设计人员预先设定的顺序,其不限上述顺序,其还可为其它任一设定顺序,在此不做一一说明。
作为本发明的一种优选方案,将文件写入到磁盘内空闲状态的簇内具体为:
查询磁盘内所有簇的状态,并将磁盘内所有空闲状态的簇的簇记录在空闲簇列表上;
根据记录的空闲簇列表获取空闲状态的簇写入文件,且实时更新记录的空闲簇列表。
在上述方案的基础上进一步优选,当文件需要续写时,进一步包括以下步骤:
步骤A1:获取该文件的当前簇;
步骤A2:判断当前簇是否写满,当未写满时,执行步骤A3;否则执行步骤A4;
步骤A3:先写满当前簇,接着根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇,执行步骤A5;
步骤A4:根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇, 执行步骤A5;
步骤A5:根据该文件续写所写入的簇,对记录的空闲簇列表进行更新。
综上可知,以上是将文件写入到磁盘内空闲状态的簇内的一种优选方案,该方案通过包括:查询磁盘内所有簇的状态,并将磁盘内所有空闲状态的簇的簇记录在空闲簇列表上;根据记录的空闲簇列表获取空闲状态的簇写入文件,且实时更新记录的空闲簇列表。可使得文件在写入或下次续写时,不需要通过判断簇的状态来寻找空闲状态的簇来写入或续写文件,而可直接从记录的空闲簇列表上获取哪些是簇是空闲状态从而省去了寻找空闲状态的簇的时间,进而提高了文件的写入或续写速度。
可以理解的是,将文件写入到磁盘内空闲状态的簇内不限于上述方案,还可以为现有技术中任一其它方案,例如:查找并判断某一簇(例如A簇)的状态,当该簇为空闲状态时,在该簇内写文件,否则继续查找并判断A簇的下一个簇(即B簇)的状态,当该簇为空闲状态时,在该簇内写文件,否则继续查找并判断B簇的下一个簇的状态……直至文件写完。
具体实施中,所述根据记录的空闲簇列表获取空闲状态的簇继续续写文件具体为:
从记录的空闲簇列表获取空闲状态的簇,并按照距离当前簇由近到远的顺序继续续写文件。
当然,上述根据记录的空闲簇列表获取空闲状态的簇继续续写文件不限于按照距离当前簇由近到远的顺序继续续写文件,还可以按照其它任一顺序进行文件的续写,在此不做一一说明。
下面参照附图并结合较佳实施例详细描述本发明的技术方案。
图1为本发明文件分配表的数据存储方法提供的较佳实施例的方法流程图,该实施例文件分配表的数据存储方法依次包括文件的写入和文件的续写两个部分,如图1所示,文件分配表的数据存储方法包括以下步骤:
步骤11:查询磁盘内所有簇的状态,并将磁盘内所有空闲状态的簇记录在空闲簇列表上;
由现有技术可知,扇区是磁盘最小的物理存储单元,但由于操作***无法对数目众多的扇区进行寻址,所以操作***就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理,每个簇可以包括2、4、8、16、32或64个扇区。根据簇是否写入文件,簇的状态为空闲状态和存满状态(即非空闲状态)。
步骤12:根据记录的空闲簇列表获取空闲状态的簇写入文件,并实时更新记录的空闲簇列表,且在文件写完后记录最后一个簇(即当前簇);
此处的更新是指,随着文件在写入,使得空闲簇列表上的簇由状态转变为非空闲状态,因此当文件在写入时,需实时将空闲簇列表上由状态转变为非空闲状态的簇去掉,即达到空闲簇列表更新的目的。
步骤13:获取该文件的当前簇;
步骤14:判断当前簇是否写满,当未写满时,执行步骤15;否则执行步骤16;
步骤15:先写满当前簇,接着根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇,执行步骤17;
步骤16:根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇, 执行步骤17;
步骤17:根据该文件续写所写入的簇,对记录的空闲簇列表进行更新。
可以理解的是,步骤17的更新类似于步骤12中的更新,因此在此不做具体说明。
该实施例,通过将磁盘内所有空闲状态的簇记录在空闲簇列表上,以及在文件写入或续写完后记录最后一个簇,这样不仅省去了需要通过判断簇的状态来寻找空闲状态的簇所花的时间,而且也省去了文件每次在续写时需从第一个开始,依次寻找,直到寻找最后一个簇所花的时间,因此本实施例大大提高了文件的写入和续写速度。
在此需说明的是,该实施例仅以一个文件的写入和文件的一次续写为例进行了说明,事实上,文件的第二次、第三次、……均可参照上述文件的依次续写方法(具体包括步骤13-步骤17),例如每续写一次文件,则执行一次步骤13-步骤17。另外,其它文件的写入同样参照上述文件的写入(具体包括步骤11-步骤12),同理其多次续写同样可参照上述文件的续写,且每续写一次文件,则执行一次步骤13-步骤17。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种文件分配表的数据存储方法,包括:将文件写入到磁盘内空闲状态的簇内,其特征在于:在该文件写完后记录其所写入的最后一个簇,并作为该文件的当前簇。
2.根据权利要求1所述的文件分配表的数据存储方法,其特征在于,当文件需要续写时,包括以下步骤:
步骤S1:获取该文件的当前簇;
步骤S2:判断当前簇是否写满,当未写满时,执行步骤S3;否则执行步骤S4;
步骤S3:先写满当前簇,接着寻找空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇;
步骤S4:寻找空闲状态的簇继续续写文件,且在该文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇。
3.根据权利要求2所述的文件分配表的数据存储方法,其特征在于,所述寻找空闲状态的簇继续续写文件具体包括以下步骤:
步骤T1:按照预设顺序依次查找簇,并判断该簇是否为空闲状态:
步骤T2:当该簇为空闲状态时,在该簇内继续续写文件,否则返回执行步骤T1。
4.根据权利要求3所述的文件分配表的数据存储方法,其特征在于,所述预设顺序为:距离当前簇由近到远的顺序。
5.根据权利要求1所述的文件分配表的数据存储方法,其特征在于,所述将文件写入到磁盘内空闲状态的簇内具体为:
查询磁盘内所有簇的状态,并将磁盘内所有空闲状态的簇记录在空闲簇列表上;
根据记录的空闲簇列表获取空闲状态的簇写入文件,且实时更新记录的空闲簇列表。
6.根据权利要求5所述的文件分配表的数据存储方法,其特征在于,当文件需要续写时,包括以下步骤:
步骤A1:获取该文件的当前簇;
步骤A2:判断当前簇是否写满,当未写满时,执行步骤A3;否则执行步骤A4;
步骤A3:先写满当前簇,接着根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇,执行步骤A5;
步骤A4:根据记录的空闲簇列表获取空闲状态的簇继续续写文件,且在文件续写完后记录其所写入的最后一个簇,且将该最后一个簇重新记作为该文件的当前簇, 执行步骤A5;
步骤A5:根据该文件续写所写入的簇,对记录的空闲簇列表进行更新。
7.根据权利要求6所述的文件分配表的数据存储方法,其特征在于,所述根据记录的空闲簇列表获取空闲状态的簇继续续写文件具体为:
从记录的空闲簇列表获取空闲状态的簇,并按照距离当前簇由近到远的顺序继续续写文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101691535A CN102841894A (zh) | 2011-06-22 | 2011-06-22 | 一种文件分配表的数据存储方法 |
TW101122384A TW201308193A (zh) | 2011-06-22 | 2012-06-22 | 一種文件分配表的資料儲存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101691535A CN102841894A (zh) | 2011-06-22 | 2011-06-22 | 一种文件分配表的数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102841894A true CN102841894A (zh) | 2012-12-26 |
Family
ID=47369267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101691535A Pending CN102841894A (zh) | 2011-06-22 | 2011-06-22 | 一种文件分配表的数据存储方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102841894A (zh) |
TW (1) | TW201308193A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912267A (zh) * | 2016-04-05 | 2016-08-31 | 深圳市四季宏胜科技有限公司 | 一种文件分配表处理方法和装置 |
CN109697019A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 基于fat文件***的数据写入的方法和*** |
CN111177070A (zh) * | 2019-12-03 | 2020-05-19 | 贵州朗盛科技股份有限公司 | 文件分配方法和存储设备 |
CN111367474A (zh) * | 2020-03-02 | 2020-07-03 | 湖南师范大学 | 面向嵌入式存储器的fat文件***后分配方法及*** |
CN114489478A (zh) * | 2021-12-20 | 2022-05-13 | 山西转型综改示范区华纳方盛科技有限公司 | 数据记录仪的数据存储方法、数据存储模块及数据记录仪 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357522B (zh) * | 2014-11-05 | 2019-11-15 | 华为技术有限公司 | 数据处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030169A (zh) * | 2006-02-28 | 2007-09-05 | 索尼株式会社 | 数据记录装置、数据记录方法、及程序 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及***架构 |
CN101051317A (zh) * | 2007-05-11 | 2007-10-10 | 北京中星微电子有限公司 | 一种fat文件***及其处理方法 |
CN101303667A (zh) * | 2008-06-25 | 2008-11-12 | 炬力集成电路设计有限公司 | 建立磁盘空簇表及查找磁盘空簇的方法和装置 |
CN101853275A (zh) * | 2010-05-05 | 2010-10-06 | 北京中星微电子有限公司 | 一种fat文件***的数据管理方法和*** |
-
2011
- 2011-06-22 CN CN2011101691535A patent/CN102841894A/zh active Pending
-
2012
- 2012-06-22 TW TW101122384A patent/TW201308193A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030169A (zh) * | 2006-02-28 | 2007-09-05 | 索尼株式会社 | 数据记录装置、数据记录方法、及程序 |
CN101034416A (zh) * | 2007-04-25 | 2007-09-12 | 北京中星微电子有限公司 | 一种利用文件分配表进行文件寻道的方法及***架构 |
CN101051317A (zh) * | 2007-05-11 | 2007-10-10 | 北京中星微电子有限公司 | 一种fat文件***及其处理方法 |
CN101303667A (zh) * | 2008-06-25 | 2008-11-12 | 炬力集成电路设计有限公司 | 建立磁盘空簇表及查找磁盘空簇的方法和装置 |
CN101853275A (zh) * | 2010-05-05 | 2010-10-06 | 北京中星微电子有限公司 | 一种fat文件***的数据管理方法和*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912267A (zh) * | 2016-04-05 | 2016-08-31 | 深圳市四季宏胜科技有限公司 | 一种文件分配表处理方法和装置 |
CN105912267B (zh) * | 2016-04-05 | 2019-01-18 | 深圳市四季宏胜科技有限公司 | 一种文件分配表处理方法和装置 |
CN109697019A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 基于fat文件***的数据写入的方法和*** |
CN109697019B (zh) * | 2017-10-20 | 2022-12-27 | 北京京东尚科信息技术有限公司 | 基于fat文件***的数据写入的方法和*** |
CN111177070A (zh) * | 2019-12-03 | 2020-05-19 | 贵州朗盛科技股份有限公司 | 文件分配方法和存储设备 |
CN111367474A (zh) * | 2020-03-02 | 2020-07-03 | 湖南师范大学 | 面向嵌入式存储器的fat文件***后分配方法及*** |
CN111367474B (zh) * | 2020-03-02 | 2021-03-02 | 湖南师范大学 | 面向嵌入式存储器的fat文件***后分配方法及*** |
CN114489478A (zh) * | 2021-12-20 | 2022-05-13 | 山西转型综改示范区华纳方盛科技有限公司 | 数据记录仪的数据存储方法、数据存储模块及数据记录仪 |
Also Published As
Publication number | Publication date |
---|---|
TW201308193A (zh) | 2013-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN102841894A (zh) | 一种文件分配表的数据存储方法 | |
CN101576890B (zh) | 一种新型碎片整理方法和*** | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN104346357A (zh) | 一种嵌入式终端的文件存取方法及*** | |
CN107608625B (zh) | 一种提升固存储设备读性能的方法 | |
CN103544077A (zh) | 数据处理方法及装置、共享存储设备 | |
CN104516471A (zh) | 一种管理存储器***的电源的方法和装置 | |
US9684664B2 (en) | Elimination of fragmentation of files in storage medium by utilizing head movement time | |
CN103559301A (zh) | 更新数据的方法、数据库触发器和搜索引擎 | |
CN103985393B (zh) | 一种多光盘数据并行管理方法及装置 | |
CN103514212A (zh) | 数据写入方法及*** | |
CN105224253A (zh) | 一种固态硬盘性能优化的方法 | |
CN103473298A (zh) | 数据归档方法和装置以及存储*** | |
CN102789403A (zh) | 一种闪存控制器及其控制方法 | |
CN102902709A (zh) | 一种固定空间分配的文件存储***及实现方法 | |
CN102306124A (zh) | Nand Flash芯片硬件驱动层的实现方法 | |
CN104461384A (zh) | 一种数据写入方法及存储设备 | |
US10423580B2 (en) | Storage and compression of an aggregation file | |
CN103092849A (zh) | 文件***簇管理方法 | |
CN102768672B (zh) | 一种磁盘空间管理方法和装置 | |
CN102024051B (zh) | 分布式内存数据库数据更新方法 | |
CN104808953A (zh) | 控制数据存储的方法、装置及移动终端 | |
CN105260139A (zh) | 一种磁盘管理方法以及*** | |
CN104123952A (zh) | 一种无缓存光盘刻录方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121226 |
|
RJ01 | Rejection of invention patent application after publication |