CN101882130B - 一种fat格式文件系统中加速打开/关闭文件的方法 - Google Patents

一种fat格式文件系统中加速打开/关闭文件的方法 Download PDF

Info

Publication number
CN101882130B
CN101882130B CN 200910039279 CN200910039279A CN101882130B CN 101882130 B CN101882130 B CN 101882130B CN 200910039279 CN200910039279 CN 200910039279 CN 200910039279 A CN200910039279 A CN 200910039279A CN 101882130 B CN101882130 B CN 101882130B
Authority
CN
China
Prior art keywords
file
fat
chained list
information
directory entry
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.)
Active
Application number
CN 200910039279
Other languages
English (en)
Other versions
CN101882130A (zh
Inventor
徐晶
范敬才
胡胜发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ankai Microelectronics Co.,Ltd.
Original Assignee
Anyka Guangzhou Microelectronics Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN 200910039279 priority Critical patent/CN101882130B/zh
Publication of CN101882130A publication Critical patent/CN101882130A/zh
Application granted granted Critical
Publication of CN101882130B publication Critical patent/CN101882130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种fat格式文件系统中加速打开/关闭文件的方法,包括以下步骤:(1)打开文件,系统根据参数判断该文件是否需要读取fat链表信息,如果是,则系统先读取fat链表信息,再对文件进行操作,然后转入步骤(2);否则,直接对文件进行操作,然后转入步骤(3);(2)系统根据参数判断该文件是否需要刷新目录项信息,如果是,则系统先刷新目录项信息,然后转入步骤(3);否则,直接转入步骤(3);(3)关闭文件。本发明有效提高了fat格式文件系统的文件打开/关闭的速度,从而提高操作效率。

Description

一种fat格式文件系统中加速打开/关闭文件的方法
技术领域
本发明涉及一种fat格式文件系统中加速打开/关闭文件的方法。
背景技术
嵌入式系统中,由于某些功能的特性以及设计思想,要求对于某些文件的打开操作具有相当高的频繁度,或是要求同时打开很多个文件,但由于系统对于这些操作的时间有一定的限制,如果超出该时间限制,则会令操作失败,因此,需要一种快速的打开文件的方法来解决这类问题。
对于一个fat(File Allocation Table,文件分配表)文件,它是由文件的目录项、fat链表以及文件内容组成。现有的fat文件系统中打开文件的方法,包括如下步骤:通过文件的目录项找到它的簇链的第一个位置,然后读取整条簇链信息(fat链表信息),最后可以根据需要找到簇链中对应的文件内容。对于这个过程,时间主要都耗在了簇链读取的过程中,尤其是当该磁盘已经被使用了相当长的一段时间,fat表中存在许多碎片,并且文件内容比较大时,读取一条簇链信息可能需要跨越十几个乃至几十个扇区。因此,对于某些操作是严重耗时的,例如,系统需要打开数目众多的文件;频繁打开文件,检验该文件是否存在;获取文件的创建时间,修改时间或是最后访问时间;获取文件大小的信息等。
现有的fat文件关闭方法,需要最后将fat链表信息逐个写入,并且同时刷新文件的目录项信息,以保证文件簇链信息的完整性。对于多数系统文件,这样的操作既多余又耗时,因为多数系统文件是用来记录一些固定的结构信息或是少量的配置信息的,这些文件的大小以及文件目录项信息是固定不变的。
发明内容
本发明的目的是提供一种fat格式文件系统中加速打开/关闭文件的方法,意在提高fat格式文件系统的文件打开、关闭的速度,从而提高操作效率。
本发明的技术方案可以通过以下的技术措施来实现,一种fat格式文件系统中加速打开/关闭文件的方法,包括以下步骤:
(1).打开文件,系统根据参数判断该文件是否需要读取fat链表信息,如果是,则系统先读取fat链表信息,再对文件进行操作,然后转入步骤(2);否则,直接对文件进行操作,然后转入步骤(3);
(2).系统根据参数判断该文件是否需要刷新目录项信息,如果是,则系统先刷新目录项信息,然后转入步骤(3);否则,直接转入步骤(3);
(3).关闭文件。
上述参数为文件打开函数中的参数,即分别定义“加速打开文件-不读取fat链表信息”、“加速关闭文件-不刷新目录项信息”为文件打开函数的两个参数,可以将上述其中一个参数预先传入到文件打开函数中,即当用户打开文件,对文件打开函数进行调入时,便传入相应参数,从而实现加速打开、关闭文件的目的。
本发明所述的步骤(1)中,系统先读取fat链表信息,再对文件进行的操作一般为读写操作;系统不读取fat链表信息,而直接对文件进行的操作一般为与文件内容无关的操作。
因此,当打开文件时,当前并不需要用到该文件的簇链信息,而仅仅是为了找到这个文件的相关信息,进行例如检验文件是否存在,获取文件的创建时间、修改时间、最后访问时间,获取文件大小,获取文件属性信息等与文件内容无关的操作,则适合采用加速打开文件的方法,即系统不读取fat链表信息,直接对文件进行操作。当以后需要使用时,再将这部分fat链表信息读取出来。
文件的目录项信息包括文件名称、文件创建时间、修改时间、最后访问时间、文件属性、文件长度等。对于某些文件,如果文件的修改时间、最后访问时间等信息是不重要的,并且文件的名称没有发生任何变化,那么关闭这个文件时,目录项信息是不需要刷新的,即适合采用本发明所述步骤2中的加速关闭文件的方法。
文件的fat链表是记录文件大小(长度)的一个链表,而文件的目录项信息中包括一个上述的文件长度的记录项,因此,文件的fat链表和目录项信息总是相互联系的,即目录项信息中记录的文件长度与fat链表中记录的文件长度必须一致。
本发明还可以作如下改进,当对文件完成读写操作后,文件大小没有发生变化,每次在关闭此类文件的时候,将不再需要刷新fat链表信息和目录项信息。因此,本发明所述的步骤(2)中,系统可以根据参数同时判断文件是否需要刷新fat链表信息和目录项信息,如果是,则系统同时刷新fat链表信息和目录项信息,然后转入步骤(3);否则,在不刷新fat链表信息和目录项信息的情况下直接转入步骤(3)。相应地,可以定义“加速关闭文件-不刷新fat链表信息和目录项信息”为文件打开函数的第三个参数,将该参数预先传入到文件打开函数中后,系统则在不刷新fat链表信息和目录项信息的情况下直接将文件关闭。
与现有技术相比,本发明的优点是:
(1).本发明的fat格式文件系统中加速打开/关闭文件的方法,对于提高操作效率有显著效果。采用本发明的方法后,打开文件时不需要读取fat链表信息,在某些操作上会节约相当可观的时间,如:频繁打开文件,检验该文件是否存在;获取文件的创建时间,修改时间或者最后访问时间等;获取文件大小的信息。同理,关闭文件时也可以相应缩短文件的操作流程,即可以不刷新fat链表信息、不刷新目录项信息而直接关闭文件,大大节约了操作时间。需要说明的是,文件打开或关闭的时间是与文件的大小成正比的,因此,如果所要操作的文件是比较大的,那么节约的时间将会是相当可观的。
(2).本发明的fat格式文件系统中加速打开/关闭文件的方法,该加速方法是可配置的,增强了使用本方法的灵活性:用户打开文件的时候,只需要配置相应的打开方式,即将相应的参数预先传入到文件打开函数中,就可以任意选择自己需要的特性:加速打开文件-不读fat链表信息、加速关闭文件-不刷新目录项信息、加速关闭文件-不刷新fat链表信息和目录项信息。以上这三种方式也可以与正常打开/关闭文件的方法混合使用。
下面为分别应用本发明与现有技术进行打开、关闭文件的对比实例,进一步说明本发明的有益效果:
实例1:打开一个大小为10M的文件,并进行检查这个文件是否存在的操作。用普通的打开方式,需要耗时为52毫秒;而使用本发明的加速打开方式,需要耗时仅为5毫秒。
实例2:用手机开机打开一个大小为100k的文件,并进行修改这个文件内容的操作,但文件大小不变。使用普通关闭文件方式,需要耗时为882毫秒;而使用本发明的加速关闭文件方式,即不刷新fat链表、不刷新目录项,需要耗时仅为356毫秒。
以上对比实例充分证明了本发明的加速打开/关闭文件的方法可以有效节省操作时间,从而提高操作效率。
附图说明
图1是本发明实施例1的流程图;
图2是本发明实施例2的流程图。
具体实施方式
实施例1
本发明的具体实施方式如图1所示,一种fat格式文件系统中加速打开/关闭文件的方法,包括以下步骤:
(1).打开文件,系统根据参数判断该文件是否需要读取fat链表信息,如果是,则系统先读取fat链表信息,再对文件进行操作,然后转入步骤(2);否则,直接对文件进行操作,然后转入步骤(3);
(2).系统根据参数判断该文件是否需要刷新目录项信息,如果是,则系统先刷新目录项信息,然后转入步骤(3);否则,直接转入步骤(3);
(3).关闭文件。
本发明的参数为文件打开函数中的参数,即分别定义“加速打开文件-不读取fat链表信息”、“加速关闭文件-不刷新目录项信息”为文件打开函数的两个参数,并将上述其中一个参数预先传入到文件打开函数中,即当用户打开文件,对文件打开函数进行调入时,便传入相应参数。因此,用户打开文件的时候,只需要配置好打开方式,就可以选择自己需要的特性,从而实现加速打开、关闭文件的目的。
本发明的步骤(1)中,系统先读取fat链表信息,再对文件进行的操作一般为读写操作;而在系统不读取fat链表信息的情况下直接对文件进行的操作一般为与文件内容无关的操作,该与文件内容无关的操作包括检验文件是否存在,获取文件的创建时间、修改时间、最后访问时间,获取文件大小、文件属性等相关信息的操作,其中,文件属性是指该文件是否是系统文件、隐藏文件、只读文件等文件类型信息。因此,当打开文件时,当前并不需要用到该文件的簇链信息,而仅仅是为了找到这个文件的相关信息,则适合采用加速打开文件的方法,即系统不读取fat链表信息,直接对文件进行操作。当以后需要使用时,再将这部分fat链表信息读取出来。
对于某些文件,如果文件的修改时间、最后访问时间等信息是不重要的,并且文件的名称没有发生任何变化,那么关闭这个文件时,目录项信息是不需要刷新的,即适合采用本发明步骤(2)中的加速关闭文件的方法。
下面列举具体实例说明:
文件打开函数的接口为:
T_PFILE File_Open(T_PFILE parent,const T_U 16*FileName,T_U32mode)
其中,parent是父目录的文件句柄,FileName是文件名,mode是指定文件将以什么方式打开,定义如下参数:
#define  FILE_MODE_READ      0x00文件以只读方式打开
#define  FILE_MODE_CREATE    0x01文件被创建
#define  FILE_MODE_OVERLAY   0x02文件将以覆盖的方式打开
#define  FILE_MODE_APPEND    0x03文件以继续追加的方式打开
如上是几种普通的打开方式,文件打开范例如下:
File_Open(null,“B:/TestFile”,FILE_MODE_READ)
这个函数说明:B盘下的文件TestFile将会以只读方式被打开。
File_Open(null,“B:/TestFile”,FILE_MODE_CREATE)
这个函数说明:B盘下将会创建一个文件TestFile。
当使用本实施例的加速打开/关闭文件的方法时,定义如下参数:
#define FILE_MODE_EXT_FAT_FIXED 0x40000000打开文件时不需要读fat链表信息
#define FILE_MODE_EXT_FDT_FIXED 0x80000000关闭文件时不需要刷新目录项信息
因此,当想要不读fat链表信息时,文件打开如下:
File_Open(null,“B:/TestFile”,FILE_MODE|READ|FILE_MODE_EXT_FAT_FIXED)
此时,这个文件的fat链表信息就不会被读出来。
如果不想刷新目录项信息时,文件打开如下:
File_Open(null,“B:/TestFile”,FILE_MODE_OVERLAY|FILE_MODE_EXT_FDT_FIXED)
此时,这个文件在关闭时,不会刷新目录项信息。
实施例2
本发明的具体实施方式如图2所示,与实施例1所不同的是,对于某些文件,如用来记录一些固定的结构信息或是少量的配置信息的系统文件。当完成读写操作后,文件大小没有发生变化,即从创建到最后,文件的大小都是固定的一个结构,那么每次在关闭此类文件的时候,不再需要刷新fat链表信息和目录项信息。例如,仅在原来文件内容的基础上进行一些修改,而文件的大小不变,则完全可以在创建之初就给其分配足够的空间信息,即足够多的簇链,那么关闭这个文件时,不需要刷新目录项信息和fat链表信息。因此,在所述的步骤(2)中,系统可以根据参数同时判断文件是否需要刷新fat链表信息和目录项信息,如果是,则系统同时刷新fat链表信息和目录项信息,然后转入步骤(3),即关闭文件;否则,在不刷新fat链表信息和目录项信息的情况下直接转入步骤(3),即直接关闭文件。相应地,定义“加速关闭文件-不刷新fat链表信息和目录项信息”为文件打开函数的第三个参数,将该参数预先传入到文件打开函数中后,系统在不刷新fat链表信息和目录项信息的情况下直接将文件关闭,大大提高了操作效率。

Claims (7)

1.一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于包括以下步骤:
(1).打开文件,系统根据参数判断该文件是否需要读取fat链表信息,如果是,则系统先读取fat链表信息,再对文件进行操作,然后转入步骤(2);否则,直接对文件进行操作,然后转入步骤(3);
(2).系统根据参数判断该文件是否需要刷新目录项信息,如果是,则系统先刷新目录项信息,然后转入步骤(3);否则,直接转入步骤(3);
(3).关闭文件。
2.根据权利要求1所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于所述的参数为文件打开函数中的参数,即分别定义“加速打开文件-不读取fat链表信息”、“加速关闭文件-不刷新目录项信息”为文件打开函数的两个参数,并将上述参数预先传入到文件打开函数中。
3.根据权利要求2所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于所述的步骤(1)中,系统先读取fat链表信息,再对文件进行的操作为读写操作。
4.根据权利要求2所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于所述的步骤(1)中,系统不读取fat链表信息,而直接对文件进行的操作为与文件内容无关的操作。
5.根据权利要求4所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于所述的与文件内容无关的操作包括检验文件是否存在,获取文件的创建时间、修改时间、最后访问时间,获取文件大小、文件属性信息的操作。
6.根据权利要求2所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于还定义“加速关闭文件-不刷新fat链表信息和目录项信息”为文件打开函数的第三个参数,将该参数预先传入到文件打开函数中后,所述的步骤(2)中,系统根据参数同时判断文件是否需要刷新fat链表信息和目录项信息,如果是,则系统同时刷新fat链表信息和目录项信息,然后转入步骤3,否则,在不刷新fat链表信息和目录项信息的情况下直接转入步骤3。
7.根据权利要求6所述的一种fat格式文件系统中加速打开/关闭文件的方法,其特征在于关闭时不需要刷新fat链表信息和目录项信息的文件包括用来记录固定的结构信息或是配置信息的系统文件。
CN 200910039279 2009-05-07 2009-05-07 一种fat格式文件系统中加速打开/关闭文件的方法 Active CN101882130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910039279 CN101882130B (zh) 2009-05-07 2009-05-07 一种fat格式文件系统中加速打开/关闭文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910039279 CN101882130B (zh) 2009-05-07 2009-05-07 一种fat格式文件系统中加速打开/关闭文件的方法

Publications (2)

Publication Number Publication Date
CN101882130A CN101882130A (zh) 2010-11-10
CN101882130B true CN101882130B (zh) 2012-10-03

Family

ID=43054146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910039279 Active CN101882130B (zh) 2009-05-07 2009-05-07 一种fat格式文件系统中加速打开/关闭文件的方法

Country Status (1)

Country Link
CN (1) CN101882130B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407988B (zh) * 2014-11-13 2018-09-25 中车青岛四方机车车辆股份有限公司 一种提高数据存储效率的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794218A (zh) * 2005-12-31 2006-06-28 无锡永中科技有限公司 计算机版式文件生成方法和打开方法
CN101000614A (zh) * 2006-01-11 2007-07-18 富士通株式会社 文件删除方法和文件打开方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794218A (zh) * 2005-12-31 2006-06-28 无锡永中科技有限公司 计算机版式文件生成方法和打开方法
CN101000614A (zh) * 2006-01-11 2007-07-18 富士通株式会社 文件删除方法和文件打开方法

Also Published As

Publication number Publication date
CN101882130A (zh) 2010-11-10

Similar Documents

Publication Publication Date Title
CN109933760A (zh) 表单生成方法、装置、计算机设备及计算机可读存储介质
US20070067323A1 (en) Fast file shredder system and method
CN102375891A (zh) 一种增量数据卸载和装载的实施工具
CN103729340A (zh) 网页中编辑表格的方法和装置
CN103645928A (zh) 一种软件功能模块处理方法及系统
CN109918060A (zh) 一种实现单窗口下多标签页的切换方法及装置
CN109508187A (zh) 基于html的微信公众号图文编辑器构建方法及其编辑器
CN104866416A (zh) 实现应用程序性能分析的方法和装置
CN110069248A (zh) 接口数据的调用方法、装置、设备及计算机可读存储介质
CN101882130B (zh) 一种fat格式文件系统中加速打开/关闭文件的方法
CN102193806A (zh) 更新动画的方法和装置
CN110427185A (zh) 一种基于电力脚本语言实现人机浏览器功能的方法
CN103218691B (zh) 一种嵌入式商业智能信息管理系统及管理方法
CN107515907A (zh) 浏览器页面的显示方法和装置
WO2011035659A1 (zh) 功能手机的二次开发方法及装置
CN110457036A (zh) 一种qml扩展控件的属性设置方法
CN101025743A (zh) 一种电子文件及其编辑制作和读取呈现的方法
KR102490941B1 (ko) 엑셀 도구를 이용한 온라인 보고서 작성 시스템
CN103914288A (zh) 判断控件状态的方法
CN102880682B (zh) 一种网页保存的方法及装置
CN101425094A (zh) 一种改变容器窗口的方法和装置
KR102518772B1 (ko) 수집 데이터 자동 처리를 위한 데이터 적재 프로파일링 장치 및 방법
CN108388427A (zh) 一种pcb设计中导入导出文字的方法
CN102841918B (zh) 二进制长对象流化数据处理装置和方法
CN110286940B (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
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 301-303 401-402, zone C1, No. 182, science Avenue, Science City, Guangzhou high tech Industrial Development Zone

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
CP02 Change in the address of a patent holder

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.

CP02 Change in the address of a patent holder