CN105468692A - 文件***结构及其打包方法和读取方法 - Google Patents
文件***结构及其打包方法和读取方法 Download PDFInfo
- Publication number
- CN105468692A CN105468692A CN201510790793.6A CN201510790793A CN105468692A CN 105468692 A CN105468692 A CN 105468692A CN 201510790793 A CN201510790793 A CN 201510790793A CN 105468692 A CN105468692 A CN 105468692A
- Authority
- CN
- China
- Prior art keywords
- file
- free block
- block
- system structure
- control block
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- 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
- G06F16/137—Hash-based
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)
- Storage Device Security (AREA)
Abstract
本发明所述的文件***结构包括文件头、文件数据区、空闲块描述区域和文件控制块,文件采取连续存储的方式存储于文件数据区,删除文件时仅删除文件目录描述信息而不移动其他文件,而形成空闲块;添加文件时优先***删除文件留下的空闲块,以能够做到尽可能利用空间。本发明还提供对应的文件打包方法和文件读取方法,基于该文件***结构,能做好快速准确地打包和读取,减小打包后占用的空间。
Description
技术领域
本发明涉及文件管理领域,尤其涉及一种文件***结构及其打包方法和读取方法。
背景技术
把一个或者多个文件用压缩软件进行压缩,压制成一个压缩文件包,包括一个解包文件和一个内容文件。文件打包既可以节省空间,又方便网络间传送。多个文件打包成可执行文件后,实现资源保护,还可加密码或序列号。将文件打包后能更好的节省硬盘空间资源,并且使收发文件更迅速快捷方便,也更利于管理。文件打包尤其利于传送大量图片、音乐素材及多个视频资料。
一个网络游戏中包含很多资源,如图像、声音、文本和其他各种类型的数据。为游戏提供一个完整和高效的资源文件打包***可以提高游戏数据的安全性,读取数据的效率等。
发明内容
本发明提供一种文件***结构,包括:
文件数据区,用于存储文件,在所述文件数据区具有未存储文件的空闲块;
空闲块描述区域,用于描述所述空闲块在所述文件数据区的大小和位置;
文件控制块,用于描述存储文件的相关信息;以及
文件头,用于描述文件数据区、空闲块描述区域和所述文件控制块的信息;
其中,所述文件采取连续存储的方式存储于所述文件数据区,删除文件时不移动其他文件而形成所述空闲块,添加文件时优先***删除文件留下的所述空闲块中。
可选的,所述文件控制块包括文件路径的哈希值和偏移值。
可选的,所述文件***结构还包括备份的文件控制块。
可选的,所述文件***结构还包括备份的空闲块描述区域。
本发明还提供一种基于上述文件***结构的文件打包方法,包括:
依次读取所需打包的文件,通过文件的大小计算出文件所需占用的空间;
在所述空闲块中查找不小于所需占用空间的空闲块;
计算文件路径的哈希值和偏移值,以创建此文件的文件控制块;以及
将文件写入空闲块并在所述空闲块描述区域中删除使用了的空闲块。
可选的,写入文件时,当所述文件数据区写满后,覆盖部分文件目录信息表。
可选的,当文件的写入会覆盖部分文件目录信息表时,备份所述文件目录信息表并继续写入,写入完成后制作新的文件目录信息表并备份。
可选的,若在所述空闲块中查找不小于所需占用的块数的空闲块失败,则扩展所述文件数据区。
本发明还提供一种基于上述文件***结构的文件读取方法,包括:
读入文件头信息;
通过文件头中记录的文件控制块的偏移值读入文件控制块;
通过文件控制块中文件路径的哈希值查找文件对应的偏移值;以及
在文件数据区读取偏移值对应的数据文件。
可选的,如果文件头信息有损坏,则读入备份的文件头信息。
本发明所述的文件***结构包括文件头、文件数据区、空闲块描述区域和文件控制块,文件采取连续存储的方式存储于文件数据区,删除文件时仅删除文件目录描述信息而不移动其他文件,而形成空闲块;添加文件时优先***删除文件留下的空闲块,以能够做到尽可能利用空间。本发明还提供对应的文件打包方法和文件读取方法,基于该文件***结构,能做好快速准确地打包和读取,减小打包后占用的空间。
附图说明
图1为本发明一实施例所述文件***结构的示意图;
图2为本发明一实施例所述文件打包方法的流程图;
图3为本发明一实施例所述文件读取方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
本发明提供了一种文件***结构,如图1所示,包括:
文件数据区20,用于存储文件,在所述文件数据区20具有未存储文件的空闲块21;
空闲块描述区域30,用于描述所述空闲块21在所述文件数据区20的大小和位置;
文件控制块40,用于描述存储文件的相关信息;以及
文件头10,用于描述文件数据区20、空闲块描述区域30和所述文件控制块40的信息;
其中,所述文件采取连续存储的方式存储于所述文件数据区20,删除文件时不移动其他文件而形成所述空闲块21,添加文件时优先***删除文件留下的所述空闲块21中。
文件控制块40是操作***为管理文件而设置的一组具有固定格式的数据结构,存放了为管理文件所需的所有属性信息(文件属性或元数据)。在本实施例中,所述文件控制块40包括文件路径的哈希值和偏移值。通过文件路径哈希值支持高效的寻址,方便快速的添加、***、删除和修改操作。该文件***结构中,还包括备份的文件控制块40和空闲块描述区域30。另外,还可以包括备份的文件头10。
本发明还提供一种文件打包方法,基于上述文件***结构,该文件打包方法如图2所示,包括:
依次读取所需打包的文件,通过文件的大小计算出文件所需占用的空间;
在所述空闲块中查找不小于所需占用空间的空闲块;
计算文件路径的哈希值和偏移值,以创建此文件的文件控制块;以及
将文件写入空闲块并在所述空闲块描述区域中删除使用了的空闲块。
在本实施例中,写入文件时,当所述文件数据区写满后,覆盖部分文件目录信息表。当文件的写入会覆盖部分文件目录信息表时,备份所述文件目录信息表并继续写入,写入完成后制作新的文件目录信息表并备份。
另外,若在所述空闲块中查找不小于所需占用的块数的空闲块失败,则扩展所述文件数据区。
综上所述,该打包方法步骤为:依次读取所需打包的文件;通过文件的大小计算出文件所占用的块数,通过需要的块数在空闲块中查找符合条件的空闲块,如果空闲的空间不够就做一下扩展,最后如果还是没有找到则返回失败;判断如果这个文件的写入会覆盖掉备份的文件目录信息表,则保存一下,要把最后正常保存到磁盘中的文件目录信息表作为备份的文件目录信息表,重写当前的文件目录信息表;计算文件路径的哈希值并创建此文件的文件目录信息并将此文件路径的哈希值与文件的偏移值加入到文件信息表中;将文件写入空闲块并在空闲块表中删除使用了的空闲块;完成所有文件的写入操作。
本发明还提供一种文件读取方法,基于上述文件***结构。如图3所示,该文件读取方法包括:
读入文件头信息;
通过文件头中记录的文件控制块的偏移值读入文件控制块;
通过文件控制块中文件路径的哈希值查找文件对应的偏移值;以及
在文件数据区读取偏移值对应的数据文件。
其中,可以理解的是如果文件头信息有损坏,则读入备份的文件头信息。
综上所述,该文件读取方法步骤为:读入文件头信息,如果文件头信息有损坏,则读入备份的文件头信息;通过文件头中记录的文件目录信息表的偏移值读入文件目录信息表与哈希表;通过文件路径的哈希值快速查找对应的偏移值;在文件数据区读取偏移值对应的数据文件。
本发明所述的文件***结构包括文件头、文件数据区、空闲块描述区域和文件控制块,文件采取连续存储的方式存储于文件数据区,删除文件时仅删除文件目录描述信息而不移动其他文件,而形成空闲块;添加文件时优先***删除文件留下的空闲块,以能够做到尽可能利用空间。本发明还提供对应的文件打包方法和文件读取方法,基于该文件***结构,能做好快速准确地打包和读取,减小打包后占用的空间。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (10)
1.一种文件***结构,其特征在于,包括:
文件数据区,用于存储文件,在所述文件数据区具有未存储文件的空闲块;
空闲块描述区域,用于描述所述空闲块在所述文件数据区的大小和位置;
文件控制块,用于描述存储文件的相关信息;以及
文件头,用于描述文件数据区、空闲块描述区域和所述文件控制块的信息;
其中,所述文件采取连续存储的方式存储于所述文件数据区,删除文件时不移动其他文件而形成所述空闲块,添加文件时优先***删除文件留下的所述空闲块中。
2.如权利要求1所述的文件***结构,其特征在于,所述文件控制块包括文件路径的哈希值和偏移值。
3.如权利要求1所述的文件***结构,其特征在于,还包括备份的文件控制块。
4.如权利要求1所述的文件***结构,其特征在于,还包括备份的空闲块描述区域。
5.一种基于权利要求1所述文件***结构的文件打包方法,其特征在于,包括:
依次读取所需打包的文件,通过文件的大小计算出文件所需占用的空间;
在所述空闲块中查找不小于所需占用空间的空闲块;
计算文件路径的哈希值和偏移值,以创建此文件的文件控制块;以及
将文件写入空闲块并在所述空闲块描述区域中删除使用了的空闲块。
6.如权利要求5所述的文件打包方法,其特征在于,写入文件时,当所述文件数据区写满后,覆盖部分文件目录信息表。
7.如权利要求6所述的文件打包方法,其特征在于,当文件的写入会覆盖部分文件目录信息表时,备份所述文件目录信息表并继续写入,写入完成后制作新的文件目录信息表并备份。
8.如权利要求6所述的文件打包方法,其特征在于,若在所述空闲块中查找不小于所需占用的块数的空闲块失败,则扩展所述文件数据区。
9.一种基于权利要求1所述文件***结构的文件读取方法,其特征在于,包括:
读入文件头信息;
通过文件头中记录的文件控制块的偏移值读入文件控制块;
通过文件控制块中文件路径的哈希值查找文件对应的偏移值;以及
在文件数据区读取偏移值对应的数据文件。
10.如权利要求9所述的文件读取方法,其特征在于,如果文件头信息有损坏,则读入备份的文件头信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790793.6A CN105468692A (zh) | 2015-11-17 | 2015-11-17 | 文件***结构及其打包方法和读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510790793.6A CN105468692A (zh) | 2015-11-17 | 2015-11-17 | 文件***结构及其打包方法和读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105468692A true CN105468692A (zh) | 2016-04-06 |
Family
ID=55606393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510790793.6A Pending CN105468692A (zh) | 2015-11-17 | 2015-11-17 | 文件***结构及其打包方法和读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468692A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018133580A1 (zh) * | 2017-01-23 | 2018-07-26 | 北京奇虎科技有限公司 | 一种保护智能终端本地文件的方法和装置 |
CN113282521A (zh) * | 2021-05-19 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种智能卡寿命延长方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567003A (zh) * | 2009-05-27 | 2009-10-28 | 清华大学 | 并行文件***中资源的管理和分配方法 |
CN101814069A (zh) * | 2009-02-20 | 2010-08-25 | 苏州市蜗牛电子有限公司 | 电子文件打包方法 |
CN102880667A (zh) * | 2012-09-04 | 2013-01-16 | 北京航空航天大学 | 一种基于关键路径和禁忌搜索的测试任务调度方法 |
CN104820575A (zh) * | 2015-04-27 | 2015-08-05 | 西北工业大学 | 实现存储***自动精简的方法 |
-
2015
- 2015-11-17 CN CN201510790793.6A patent/CN105468692A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814069A (zh) * | 2009-02-20 | 2010-08-25 | 苏州市蜗牛电子有限公司 | 电子文件打包方法 |
CN101567003A (zh) * | 2009-05-27 | 2009-10-28 | 清华大学 | 并行文件***中资源的管理和分配方法 |
CN102880667A (zh) * | 2012-09-04 | 2013-01-16 | 北京航空航天大学 | 一种基于关键路径和禁忌搜索的测试任务调度方法 |
CN104820575A (zh) * | 2015-04-27 | 2015-08-05 | 西北工业大学 | 实现存储***自动精简的方法 |
Non-Patent Citations (3)
Title |
---|
FAY8048的博客: "引导块,超级快,i节点表", 《HTTPS://BLOG.CSDN.NET/CCCCDDDXXX/ARTICLE/DETAILS/6407666》 * |
HANGYUANBIYESHENG的专栏: "文件空闲块管理技术", 《HTTPS://BLOG.CSDN.NET/HANGYUANBIYESHENG/ARTICLE/DETAILS/6797499》 * |
王红: "Linux文件***结构分析", 《潍坊学院学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018133580A1 (zh) * | 2017-01-23 | 2018-07-26 | 北京奇虎科技有限公司 | 一种保护智能终端本地文件的方法和装置 |
CN113282521A (zh) * | 2021-05-19 | 2021-08-20 | 武汉天喻信息产业股份有限公司 | 一种智能卡寿命延长方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509701B2 (en) | Performing data backups using snapshots | |
US11263194B2 (en) | File block addressing for backups | |
CN106201771B (zh) | 数据存储***和数据读写方法 | |
US9773059B2 (en) | Tape data management | |
CN107817946B (zh) | 用于混合存储设备读写数据的方法以及装置 | |
US20130067237A1 (en) | Providing random access to archives with block maps | |
CN103595797B (zh) | 一种分布式存储***中的缓存方法 | |
CN103226965B (zh) | 基于时间位图的音视频数据存取方法 | |
CN103914522A (zh) | 一种应用于云存储重复数据删除的数据块合并方法 | |
CN104238962A (zh) | 向缓存中写入数据的方法及装置 | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN104486392A (zh) | 一种低存储空间的虚拟机镜像打包方法 | |
CN107391544A (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN102224489A (zh) | 包括快闪转换层的快闪存储器及其中存储文件的方法 | |
CN111506253A (zh) | 一种分布式存储***及其存储方法 | |
CN103473258A (zh) | 云存储文件*** | |
KR101351561B1 (ko) | 빅 데이터 추출 시스템 및 방법 | |
CN103500206A (zh) | 基于文件存储数据的存储方法及装置 | |
US8190834B2 (en) | Process for contiguously streaming data from a content addressed storage system | |
CN105260139A (zh) | 一种磁盘管理方法以及*** | |
CN105468692A (zh) | 文件***结构及其打包方法和读取方法 | |
EP2957088B1 (en) | Serialization for delta encoding | |
US20100174880A1 (en) | Method for fast format of a fully allocated volume when copied from a space efficient volume | |
CN103207916A (zh) | 元数据处理的方法和装置 | |
EP3093772A1 (en) | Data processing method, data writing method, and related apparatus |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160406 |