CN100585597C - 一种文件组织方法 - Google Patents

一种文件组织方法 Download PDF

Info

Publication number
CN100585597C
CN100585597C CN200710124816A CN200710124816A CN100585597C CN 100585597 C CN100585597 C CN 100585597C CN 200710124816 A CN200710124816 A CN 200710124816A CN 200710124816 A CN200710124816 A CN 200710124816A CN 100585597 C CN100585597 C CN 100585597C
Authority
CN
China
Prior art keywords
file
content
big
son
size
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.)
Expired - Fee Related
Application number
CN200710124816A
Other languages
English (en)
Other versions
CN101206660A (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.)
Shenzhen Coship Electronics Co Ltd
Original Assignee
Shenzhen Coship Electronics 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 Shenzhen Coship Electronics Co Ltd filed Critical Shenzhen Coship Electronics Co Ltd
Priority to CN200710124816A priority Critical patent/CN100585597C/zh
Publication of CN101206660A publication Critical patent/CN101206660A/zh
Application granted granted Critical
Publication of CN100585597C publication Critical patent/CN100585597C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明提供了一种文件组织的方法,所述的方法包括如下步骤:a、建立模拟文件的文件夹,b、在所述的文件夹下建立一个记录文件信息数据的信息子文件,并在所述文件夹下建立一个以上的内容子文件,所述的内容子文件用来存储所述文件的内容数据。对于按照本发明技术方案组织的超过2GB的大文件,FAT文件系统也能够支持,并且对大文件的操作效率与操作小文件一样。

Description

一种文件组织方法
技术领域
本发明属于数据存储技术领域,尤其涉及大容量文件的存储和读写操作技术。
背景技术
随着科学技术的日益进步,数据存储设备容量越来越大,其中存储的文件也越来越大,因此,对于存储设备中文件的管理系统也需要支持日益增大的文件需求。
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,现有的FAT(File Allocation Table文件分配表)文件系统和Ext2文件系统是广泛使用的两种文件系统,这两种文件系统提供的文件支持打开、关闭、读、写、定位等操作。
如上所述,存储容量的增大也导致所要存放的文件的日益增大,但是现有的FAT文件系统最大支持的文件大小为2G,对超过2G的文件不能支持。虽然Ext2文件系统支持大于2G的文件,但是对于这种大文件读写定位的操作效率没有对小于2G的文件的操作快。
因此,有必要提供一种技术方案,能够支持大文件并且能够高效的操作。
发明内容
本发明的目的在于提供一种文件组织方法,旨在解决现有大容量文件的存储问题。
本发明是这样实现的,一种文件组织的方法,所述的方法包括如下步骤:
一种文件组织的方法,所述的方法包括如下步骤:
a、建立模拟文件的文件夹,b、在所述的文件夹下建立一个记录文件信息数据的信息子文件,并在所述文件夹下建立一个以上的内容子文件,所述的内容子文件用来存储所述文件的内容数据。
所述记录文件信息数据的信息子文件为INFO.inf文件,所记录的信息数据包括所述文件的标志、内容子文件的个数和每个内容子文件的大小。
所述INFO.inf文件还可以记录文件创建时间和/或修改时间。
所述内容子文件的后缀为.dat。
所述的内容子文件的个数根据所述文件大小来定。
所述文件为大小超过2GB的文件。
所述文件的标志用来检验符合规格的大文件是否存在。
在步骤b后还包括对所述文件的读、写、打开或者定位操作步骤。
对所述文件的读、写、打开或者定位操作转化为对所述内容子文件的操作。
对所述文件的操作采用FAT文件系统或者Ext2文件系统。
所述写操作包括以下步骤:
(1)根据大文件句柄提供的内容子文件的信息,判断当前的内容子文件是否能够写入全部内容,如果是,转步骤(2),否则转步骤(3);
(2)直接写入到当前的内容子文件中,返回写成功;
(3)将要写入的内容分成两部分,一部分写入当前的内容子文件,同时新建一个内容子文件,将另一部分数据写入,返回写成功。
所述读操作包括以下步骤:
(1)判断文件能否满足当前要读的内容大小,满足转步骤(3),否则转步骤(2);
(2)调整要读的内容大小为文件实际能提供的内容大小,然后转步骤(3);
(3)通过大文件句柄中包含的当前内容子文件的句柄转换为对小文件的读取数据,按照文件索引值依次读取内容子文件数据,直到满足要读的文件大小;然后返回读取成功。
所述定位操作包括以下步骤:
(1)将大文件指针的位置拆分转换成内容子文件的位置,利用大文件当前的位置对内容子文件的大小进行取商和取余的运算得到对于内容子文件的索引值和对于内容子文件的位置;
(2)利用内容子文件的定位操作,根据大文件句柄记录的内容子文件的信息以及步骤(1)得到内容子文件的信息,打开相应的子文件进行定位操作。
本发明克服现有技术的不足,采用文件夹模拟大文件,该文件夹包括记录大文件信息数据的INFO.inf文件,以及记录大文件的内容数据的一系列的.dat文件,对于按照本发明技术方案组织的超过2G的大文件,FAT文件系统也能够支持,并且对大文件的操作效率与操作小文件一样。
附图说明
图1是本发明实施例提供的大文件结构图;
图2是本发明实施例所述的打开大文件的操作的流程图;
图3是本发明实施例所述的对大文件写操作的流程图;
图4是本发明实施例所述从大文件读数据流程图;
图5是本发明实施例所述的对大文件进行定位操作的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中使用文件夹模拟大文件,在此文件夹下建立一系列的内容子文件来记录大文件的内容数据,同时在文件夹下建立一个特殊的信息子文件来记录该大文件的信息数据,包括大文件的标志、内容子文件的个数、每个内容子文件的大小等信息,等价于文件的目录项,同时为用户提供统一操作大文件的操作接口,这些接口最终会转换为对内容子文件的操作。而对于内容子文件的操作既可以采用FAT文件系统也可以采用Ext2文件系统或者其他文件系统,只要支持对内容子文件操作的文件系统都可以,这样能保证大文件系统的扩平台使用。
本发明实施例所指的大文件是指文件大小超过FAT文件系统支持的最大2GB大小的文件,这种文件在视频录制的方面应用的非常多,具体应用本发明技术方案时,对于大小不到2GB的文件,也同样可以采用本发明实施例提供的组织方法。
本发明实施例所述的大文件的结构如图1所示,图1中外围的虚线部分表示是用一个文件夹模拟的大文件,包括记录大文件的信息数据的INFO.inf文件,以及记录大文件的内容数据的一系列的.dat文件,如01.dat、02.dat、03.dat、04.dat、......,这些.dat文件即为上文所述的内容子文件,内容子文件的大小是自定义的一个值,除了最后一个.dat文件有可能不是这个大小,其余的.dat文件都是必须是这个大小。大文件的组成规则如下:
1、大文件是文件夹;
2、该文件夹中包含唯一的INFO.inf文件和至少一个后缀为.dat的文件;
3、INFO.inf文件记录以下内容:一是自定义的大文件标志,用于检验是否是本规格的大文件;二是dat文件的大小;三是大文件中子文件的个数;此外,还可以包括一些文件创建时间、修改时间等其他的项。
4、后缀为.dat的文件是真正记录大文件内容数据的文件,而.dat文件的个数根据大文件的大小而定。
本实施例的大文件也提供了对按照上述规则和组织方法组成的大文件的操作接口,包括一般文件系统为子文件提供的常用的操作接口,例如:打开、读、写、文件指针定位和关闭文件等基本的文件操作,对大文件的读写操作将转化为对子文件的读写操作。
打开操作的流程如图2所示,具体包括如下的步骤:
1.1通过文件夹下的INFO.inf文件中的标志来判断是否是符合本规格的大文件,检验符合本规格的大文件是否存在,如果存在转1.2,否则转1.3;
1.2打开文件,调用Malloc分配句柄空间,返回一个大文件句柄;
1.3判断文件不存在原因,如果是文件夹存在,不符合本大文件规格,转1.4(例如,和本大文件同名的文件夹存在,但是该文件夹下面没有INFO.inf文件,或者没有任何.dat文件),否则转1.5;
1.4要打开的文件不是本规格的大文件,打开失败,返回空的句柄;
1.5根据打开标签决定打开方式,如果是只读方式打开,转1.6,如果是可写的方式打开,转1.7;
1.6只读方式打开一个不存在的文件,打开失败,返回空的句柄;
1.7可写的方式打开一个不存在的文件,则创建此文件;创建文件时,首先创建文件夹,然后分别创建INFO.inf和.dat文件,并写入INFO.inf文件的内容,返回大文件句柄。创建成功后,转步骤1.2。
其中,大文件句柄包含当前子文件的索引、当前内容子文件的操作句柄、读写权限标志、大文件句柄在大文件中的位置以及大文件对应的INFO.inf文件信息的指针。
对大文件写操作,需要传入打开大文件时返回的大文件句柄,已经写入的数据缓存空间和缓存空间的大小。
写操作的流程如图3所示,具体包括如下的步骤:
2.1判断传入的大文件句柄是否支持可写,不支持转2.2,支持转2.3;
2.2返回写失败;
2.3根据大文件句柄提供的内容子文件的信息,判断当前的.dat文件是否能够写入全部内容,如果是,转2.4,否则转2.5;
2.4直接写入到当前的.dat中,返回写成功;
2.5将要写入的内容分成两部分,一部分写入当前.dat,同时新建一个.dat文件,将另一部分数据写入,返回写成功;
从大文件读数据操作,需要传入打开大文件返回的文件句柄,要读取的数据缓存空间和缓存空间的大小。
读数据所进行的操作流程如图4所示,具体包括如下步骤:
3.1判断该句柄能否支持可读,如果不支持,转进入3.2,否则转3.3;
3.2返回读失败;
3.3判断文件能否满足当前要读的内容大小,满足转3.5,否则转3.4;
3.4调整要读的内容大小为文件实际能提供的内容大小;
3.5通过大文件句柄中包含的当前子文件的句柄转换为对内容子文件的读取数据,按照文件索引值依次读取内容子文件数据,直到满足要读的文件大小;
3.6读取成功;
本发明提供的大文件的组织方法,还可以进行定位大文件句柄的操作,可以改变大文件句柄在当前所处的文件中的位置,结合读操作,可以随意读取文件任何位置的内容。例如以下应用,在个人视频录像(Personal Video Record,PVR)数字电视机顶盒中,在播放录制的音视频文件的时候,可以随意选择播放的不同位置。
定位操作需要传入打开大文件时返回的大文件句柄,句柄移动位置的大小,移动的相对位置(文件头,文件当前位置、文件尾)。
具体流程如图5所示,包括如下的步骤:
4.1将大文件指针的位置拆分转换成内容子文件的位置,利用大文件当前的位置对子文件的大小进行取商和取余的运算得到对于子文件的索引值和对于子文件的位置;
4.2利用小文件的定位操作,根据大文件句柄记录的子文件的信息以及5.1得到子文件的信息,打开相应的子文件进行定位操作。
关闭大文件时,调用子文件操作接口,关闭INFO.inf和.dat文件,然后调用Free函数释放大文件句柄指向的空间。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (12)

1、一种文件组织的方法,其特征在于,所述的方法包括如下步骤:
a、建立模拟文件的文件夹,b、在所述的文件夹下建立一个记录文件信息数据的INFO.inf文件,并在所述文件夹下建立一个以上的内容子文件,所述的内容子文件用来存储所述文件的内容数据,所述INFO.inf文件记录的信息数据包括所述文件的标志、内容子文件的个数和每个内容子文件的大小。
2、根据权利要求1所述的方法,其特征在于,所述INFO.inf文件还可以记录文件创建时间和/或修改时间。
3、根据权利要求1所述的方法,其特征在于,所述内容子文件的后缀为.dat。
4、根据权利要求1所述的方法,其特征在于,所述的内容子文件的个数根据所述文件大小来定。
5、根据权利要求1所述的方法,其特征在于,所述模拟文件的文件夹为模拟文件为大小超过2GB的大文件的文件夹。
6、根据权利要求5所述的方法,其特征在于,所述文件的标志用来检验符合规格的大文件是否存在。
7、根据权利要求5所述的方法,其特征在于,在步骤b后还包括对所述大文件的读、写、打开或者定位操作步骤。
8、根据权利要求7所述的方法,其特征在于,对所述大文件的读、写、打开或者定位操作转化为对所述内容子文件的操作。
9、根据权利要求8所述的方法,其特征在于,对所述大文件的操作采用FAT文件系统或者Ext2文件系统。
10、根据权利要求7所述的方法,其特征在于,所述写操作包括以下步骤:
(1)根据大文件句柄提供的内容子文件的信息,判断当前的内容子文件是否能够写入全部内容,如果是,转步骤(2),否则转步骤(3);
(2)直接写入到当前的内容子文件中,返回写成功;
(3)将要写入的内容分成两部分,一部分写入当前的内容子文件,同时新建一个内容子文件,将另一部分数据写入,返回写成功。
11、根据权利要求7所述的方法,其特征在于,所述读操作包括以下步骤:
(1)判断大文件能否满足当前要读的内容大小,满足转步骤(3),否则转步骤(2);
(2)调整要读的内容大小为文件实际能提供的内容大小,然后转步骤(3);
(3)通过大文件句柄中包含的当前内容子文件的句柄转换为对内容子文件的读取数据,按照文件索引值依次读取内容子文件数据,直到满足要读的文件大小;然后返回读取成功。
12、根据权利要求7所述的方法,其特征在于,所述定位操作包括以下步骤:
(1)将大文件指针的位置拆分转换成子文件的位置,利用大文件当前的位置对内容子文件的大小进行取商和取余的运算得到对于子文件的索引值和对于内容子文件的位置;
(2)利用内容子文件的定位操作,根据大文件句柄记录的内容子文件的信息以及步骤(1)得到内容子文件的信息,打开相应的内容子文件进行定位操作。
CN200710124816A 2007-12-05 2007-12-05 一种文件组织方法 Expired - Fee Related CN100585597C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710124816A CN100585597C (zh) 2007-12-05 2007-12-05 一种文件组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710124816A CN100585597C (zh) 2007-12-05 2007-12-05 一种文件组织方法

Publications (2)

Publication Number Publication Date
CN101206660A CN101206660A (zh) 2008-06-25
CN100585597C true CN100585597C (zh) 2010-01-27

Family

ID=39566868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710124816A Expired - Fee Related CN100585597C (zh) 2007-12-05 2007-12-05 一种文件组织方法

Country Status (1)

Country Link
CN (1) CN100585597C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110107B (zh) * 2009-12-23 2015-07-29 新奥特(北京)视频技术有限公司 一种图文包装系统应用中文件夹的处理方法和处理装置
CN102110106B (zh) * 2009-12-23 2015-04-29 新奥特(北京)视频技术有限公司 一种图文包装服务器及服务器中索引文件的维护方法
CN102110105B (zh) * 2009-12-23 2015-04-29 新奥特(北京)视频技术有限公司 一种图文包装系统读取文件夹的方法和装置
CN102486773B (zh) * 2009-12-30 2014-02-12 联想(北京)有限公司 虚拟磁盘内容更新方法、虚拟磁盘装置、终端设备及系统
CN103970869A (zh) * 2014-05-12 2014-08-06 浙江宇视科技有限公司 一种大文件存储方法

Also Published As

Publication number Publication date
CN101206660A (zh) 2008-06-25

Similar Documents

Publication Publication Date Title
CN100512409C (zh) 数据处理装置和数据处理方法
CN102129435B (zh) 数据存储业务控制方法及系统
CN106708427A (zh) 一种适用于键值对数据的存储方法
CN100585597C (zh) 一种文件组织方法
CN101169795B (zh) 信息处理装置、信息处理方法、程序和程序记录介质
CN101464901B (zh) 一种对象存储设备中的对象查找方法
CN106202414A (zh) 一种基于大容量光盘库的文件系统及文件存储方法和系统
CN101162441B (zh) 数据的存取装置和方法
CN102136290A (zh) 一种嵌入式实时视频文件存储方法
CN103514258B (zh) 一种基于离线缓存文件操作集中记录预处理并重放的方法
CN1383563A (zh) 用于对在存储介质上可用的存储空间进行隐分区的方法
CN102446176A (zh) 一种电子阅读多媒体用户数据记录及加载方法
CN100418071C (zh) 一种媒体文件系统的建立方法
CN103049224A (zh) 将数据导入物理磁带的方法、装置和系统
CN100507873C (zh) 一种闪存中的flash文件的管理方法及系统
CN104298697A (zh) 一种fat32格式的数据文件管理系统
CN103500206A (zh) 基于文件存储数据的存储方法及装置
CN101105774B (zh) 闪存记忆体在进行数据存取时的逻辑与物理地址转换方法
CN100580669C (zh) 在Flash存储介质上的关于文件分配表的缓存实现方法
CN108334541A (zh) 一种数据存储方法、装置、设备及存储介质
US8239427B2 (en) Disk layout method for object-based storage devices
WO2001073537A3 (en) System for and method of accessing blocks on a storage medium
CN101320392B (zh) 内存数据库的大容量数据存取方法及装置
CN102339318A (zh) 一种文件系统管理方法及系统
CN100543748C (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
EE01 Entry into force of recordation of patent licensing contract

Assignee: SHENZHEN COSHIP SOFTWARE ELECTRONICS Co.,Ltd.

Assignor: SHENZHEN COSHIP ELECTRONICS Co.,Ltd.

Contract record no.: 2011440020233

Denomination of invention: File organization method

Granted publication date: 20100127

License type: Exclusive License

Open date: 20080625

Record date: 20110622

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100127

Termination date: 20211205

CF01 Termination of patent right due to non-payment of annual fee