首页> 中国专利> 一种文件存储方法、装置及文件删除方法和装置

一种文件存储方法、装置及文件删除方法和装置

摘要

本发明提供一种文件存储方法、装置及文件删除方法和装置,所述方法包括:将目录数据和所述目录下的应用文件数据存储于数据块;存储指向所述数据块的数据块指针;存储所述目录的目录索引节点信息,以及所述应用文件的文件索引节点信息;存储所述应用文件与所述数据块指针的位置信息,以及所述应用文件与所述文件索引节点信息的位置信息。用以在删除目录时不遍历目录下的文件就能够找到这些文件占用的磁盘资源,并将所述目录及其文件删除。从而可以有效的降低删除整个目录时占用的系统资源。

著录项

  • 公开/公告号CN101446984A

    专利类型发明专利

  • 公开/公告日2009-06-03

    原文格式PDF

  • 申请/专利权人 成都市华为赛门铁克科技有限公司;

    申请/专利号CN200910001464.3

  • 发明设计人 封欢;

    申请日2009-01-09

  • 分类号G06F17/30(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻

  • 地址 611731 四川省成都市高新区西部园区清水河片区

  • 入库时间 2023-12-17 22:01:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-27

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20110413 终止日期:20190109 申请日:20090109

    专利权的终止

  • 2015-02-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20090109

    专利权人的姓名或者名称、地址的变更

  • 2011-04-13

    授权

    授权

  • 2009-07-29

    实质审查的生效

    实质审查的生效

  • 2009-06-03

    公开

    公开

说明书

技术领域

本发明关于文件存储技术,特别是关于文件系统应用中的文件的存储和删除,具体的讲是一种文件存储方法、装置及文件删除方法和装置。

背景技术

目前,在视频监控文件系统的应用中,存储视频文件的目录结构很简单,往往只有一级或者两级目录。而目录中存储的文件却很多,可达十万甚至百万个。在这种文件系统的应用中,一般只是创建和写入文件,很少读取文件,而删除文件也往往是整个目录一起删除,很少对其中的某个文件进行删除。

就删除文件而言,主要是回收这个文件使用的磁盘资源,包括保存数据的数据块和文件的索引节点。而删除目录,则是回收这个目录下的所有文件以及目录本身使用的磁盘资源,包括保存数据的数据块、文件的索引节点以及保存目录下面的文件信息的数据块。

在实现本发明的过程中发明人发现:对于现有的文件系统,在删除一个目录时,需要遍历整个目录下的所有文件以及子目录,对于子目录,同样要遍历它下面的文件和子目录,然后将这些文件和子目录依次删除,再将这个目录删除。在删除文件时,需要遍历对应目录下的所有文件,并将这些文件占用的磁盘资源的信息找出,然后将这些文件占用的磁盘资源释放掉。如果要释放某个文件占用的磁盘资源,必须要将这个文件在磁盘上的元数据读出,进行解析,才能找到这个文件占用的磁盘资源,并将其释放掉。致使删除过程耗时长,严重影响了其他程序对磁盘的访问速度。

发明内容

本发明实施例提供了一种文件存储方法、装置及文件删除方法和装置,用以在删除目录时不遍历目录下的文件就能够找到这些文件占用的磁盘资源,并将所述目录及其文件删除。从而可以有效的降低删除整个目录时占用的系统资源。

根据本发明的一方面,提供一种文件存储方法,所述方法包括:将目录数据和所述目录下的应用文件数据存储于数据块;存储指向所述数据块的数据块指针;存储所述目录的目录索引节点信息,以及所述应用文件的文件索引节点信息;存储所述应用文件与所述数据块指针的位置信息,以及所述应用文件与所述文件索引节点信息的位置信息。

根据本发明的另一方面,还提供一种文件删除方法,所述方法包括:获取指向存储有目录数据和所述目录下应用文件数据的数据块的数据块指针集;获取所述目录的目录索引节点信息以及所述应用文件的文件索引节点信息;获取所述应用文件与所述数据块指针的位置信息,和所述应用文件与所述文件索引节点信息的位置信息;根据所述的应用文件与数据块指针的位置信息从所述的数据块指针集中获取待删除应用文件对应的数据块指针,释放所述数据块指针指向的数据块中的应用文件数据;并根据所述的应用文件与所述文件索引节点信息的位置信息释放待删除应用文件对应的文件索引节点信息。

根据本发明的另一方面,还提供一种文件存储装置,所述装置包括:文件数据存储单元,用于以数据块为单位存储目录数据和所述目录下的应用文件数据;数据块指针存储单元,用于存储指向所述数据块的数据块指针;目录节点存储单元,用于存储所述目录的目录索引节点信息;文件节点存储单元,用于存储所述的目录索引节点信息以及所述应用文件索引节点信息;位置信息存储单元,用于存储所述应用文件在所述数据块指针存储单元中的应用文件数据块指针位置信息,和应用文件在所述文件节点存储单元中的应用文件索引节点位置信息。

根据本发明的另一方面,还提供一种文件删除装置,所述装置包括:数据块指针获取单元,用于获取指向存储有目录数据和所述目录下应用文件数据的数据块的数据块指针集;目录节点获取单元,用于获取所述目录的目录索引节点信息以及所述应用文件的文件索引节点信息;文件节点获取单元,用于获取所述应用文件与所述数据块指针的位置信息,和所述应用文件与所述文件索引节点信息的位置信息;数据释放单元,用于根据所述的应用文件与数据块指针的位置信息从所述的数据块指针集中获取待删除应用文件对应的数据块指针,释放所述数据块指针指向的数据块中的应用文件数据;并根据所述的应用文件与所述文件索引节点信息的位置信息释放待删除应用文件对应的文件索引节点信息。

通过本发明实施例提供的技术方案,在删除目录时不遍历目录下的文件就能够找到这些文件占用的磁盘资源,并将所述目录及其文件删除。有效的降低了删除整个目录时占用的系统资源。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例文件存储装置的结构框图;

图2为本发明实施例文件存储工作流程图;

图3为本发明实施例的根目录存储的树形结构图;

图4为本发明实施例的根目录的树形结构图;

图5为本发明实施例的子目录的树形结构图;

图6为本发明实施例文件删除装置的结构框图;

图7为本发明实施例文件删除工作流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了不遍历目录下的文件就可以找到这个目录下的所有文件占用的磁盘资源,同时也为了提高删除目录的效率,对文件的存储结构进行改变,为每个目录增加三个属性文件:

(一)数据块指针列表:用来记录目录下所有应用文件所使用的数据块,和目录本身使用的数据块。

(二)目录节点列表:用来记录这个目录下的子目录的索引节点信息,主要用来寻找这些子目录下的文件占用的磁盘资源,同时还保存这个目录作为子目录的索引节点在其父目录的索引节点列表中的位置。

(三)文件节点列表:用来记录这个目录下的所有应用文件使用的索引节点信息,包括目录本身的索引节点信息。

为每个应用文件增加一个属性文件:

偏移位置列表:用来记录应用文件占用的数据块编号在所属目录的数据块指针列表中的位置,同时保存所述应用文件的索引节点信息在目录节点列表中的位置。

实施例一

如图1所示,本实施例的文件存储装置100包括:文件数据存储单元101用于以数据块为单位存储目录数据和所述目录下的应用文件数据;数据块指针存储单元102用于存储指向所述数据块的数据块指针;目录节点存储单元103用于存储所述目录的目录索引节点信息;文件节点存储单元104用于存储所述的目录索引节点信息以及所述应用文件索引节点信息;位置信息存储单元105用于存储所述应用文件在所述数据块指针存储单元中的应用文件数据块指针位置信息,和应用文件在所述文件节点存储单元中的应用文件索引节点位置信息。

如图2所示,本实施例的文件存储方法流程包括:将目录数据和所述目录下的应用文件数据存储于非易失性存储器的数据块中(步骤S101);存储指向所述数据块的数据块指针,存储所述目录的目录索引节点信息以及所述应用文件的文件索引节点信息,存储所述应用文件与所述数据块指针的位置信息以及所述应用文件与所述文件索引节点信息的位置信息(步骤S102)。

如图3所示,创建根目录1000及其子目录2000,并在根目录1000下存储应用文件3000,其中根目录1000的索引节点号(索引节点信息)为1000,子目录2000的索引节点号为2000,应用文件3000的索引节点号为3000。在子目录2000下存储应用文件3100、应用文件3200、应用文件3300、应用文件3400和应用文件3500,其中子目录2000的五个应用文件的索引节点号依次为3100、3200、3300、3400和3500。

如图4所示,为根目录1000创建三个属性文件:数据块指针列表1001、目录节点列表1002和文件节点列表1003,三个属性文件的索引节点号依次为1001,1002和1003。并为应用文件3000创建偏移位置列表3001。

数据块指针列表1001记录有:指针421、422、423、424以及指针500~504。各个指针分别指向非易失性存储器的不同数据块,其中指针421指向存储根目录数据的数据块,指针422指向存储根目录数据块指针列表的数据块,指针423指向存储根目录索引节点信息的数据块,指针424指向存储根目录下文件索引节点信息的数据块,指针500~504指向存储根目录下的应用文件数据的数据块。

目录节点列表1002记录有:根目录索引节点号1000。

文件节点列表1003记录有:根目录索引节点号1000,数据块指针列表索引节点号1001、目录节点列表索引节点号1002、文件节点列表索引节点号1003和应用文件索引节点号3000。

偏移位置列表3001记录有:文件节点列表偏移指针5和数据块指针列表偏移指针5、6、7、8、9。其中,文件节点列表偏移指针5的含义是:指向文件节点列表的第5个文件索引节点号3000;数据块指针列表偏移指针5、6、7、8、9的含义是:依次指向数据块指针列表的第5个数据块指针500、第6个数据块指针501、第7个数据块指针502、第8个数据块指针503和第9个数据块指针504。

本实施例的效果在于,为了不遍历目录下的文件就可以找到这个目录下的所有文件占用的磁盘资源,同时也为了提高删除目录的效率,对文件的存储结构进行了改变,为每个目录增加数据块指针列表、目录节点列表和文件节点列表;为应用文件增加了偏移位置列表。从而使删除目录时,只需根据偏移位置列表获取数据块指针列表中所有待删除文件的数据块指针并释放这些指针所指数据块的数据,并删除目录节点列表和文件节点列表中待删除目录及其应用文件的索引节点信息即可。实现了不用遍历目录下的文件就能够找到这些文件占用的磁盘资源,建立了方便目录删除的目录及应用文件的数据存储的基础。

实施例二

在如图4所示的目录节点列表1002中加入子目录2000的目录索引节点号2000。

如图5所示,为子目录2000创建三个属性文件:数据块指针列表2001、目录节点列表2002和文件节点列表2003,三个属性文件的索引节点号依次为2001,2002和2003。

为应用文件3100创建偏移位置列表3101,为应用文件3200创建偏移位置列表3201,为应用文件3300创建偏移位置列表3301,为应用文件3400创建偏移位置列表3401,为应用文件3500创建偏移位置列表3501。

作为数据块指针集的数据块指针列表2001记录有:指针621、622、623、624以及指针700~704。各个指针分别指向非易失性存储器的不同数据块,其中指针621指向存储子目录数据的数据块,指针622指向存储子目录数据块指针列表的数据块,指针623指向存储子目录索引节点信息的数据块,指针624指向存储根目录下文件索引节点信息的数据块,指针700~704指向存储子目录下的各应用文件数据的数据块。

目录节点列表2002记录有:子目录2000在目录节点列表1002中的偏移位置指针2。

文件节点列表2003记录有:子目录索引节点号2000,数据块指针列表索引节点号2001、目录节点列表索引节点号2002、文件节点列表索引节点号2003和应用文件索引节点号3100、3200、3300、3400和3500。

偏移位置列表3101记录有:文件节点列表偏移指针5和数据块指针列表偏移指针5。其中,文件节点列表偏移指针5的含义是:指向文件节点列表的第5个文件索引节点号3100;数据块指针列表偏移指针5的含义是:指向数据块指针列表的第5个数据块指针700。

偏移位置列表3201记录有:文件节点列表偏移指针6和数据块指针列表偏移指针6。其中,文件节点列表偏移指针6的含义是:指向文件节点列表的第6个文件索引节点号3200;数据块指针列表偏移指针6的含义是:指向数据块指针列表的第6个数据块指针701。

偏移位置列表3301记录有:文件节点列表偏移指针7和数据块指针列表偏移指针7。其中,文件节点列表偏移指针7的含义是:指向文件节点列表的第7个文件索引节点号3300;数据块指针列表偏移指针7的含义是:指向数据块指针列表的第7个数据块指针702。

偏移位置列表3401记录有:文件节点列表偏移指针8和数据块指针列表偏移指针8。其中,文件节点列表偏移指针8的含义是:指向文件节点列表的第8个文件索引节点号3400;数据块指针列表偏移指针8的含义是:指向数据块指针列表的第8个数据块指针703。

偏移位置列表3501记录有:文件节点列表偏移指针9和数据块指针列表偏移指针9。其中,文件节点列表偏移指针9的含义是:指向文件节点列表的第9个文件索引节点号3500;数据块指针列表偏移指针9的含义是:指向数据块指针列表的第9个数据块指针704。

为了不遍历目录下的文件就可以找到这个目录下的所有文件占用的磁盘资源,同时也为了提高删除目录的效率,对文件的存储结构进行了改变,为每个目录增加数据块指针列表、目录节点列表和文件节点列表;为应用文件增加了偏移位置列表。从而使删除目录时,只需根据偏移位置列表获取数据块指针列表中所有待删除文件的数据块指针并释放这些指针所指数据块的数据,并删除目录节点列表和文件节点列表中待删除目录及其应用文件的索引节点信息即可。实现了不用遍历目录下的文件就能够找到这些文件占用的磁盘资源,建立了方便目录删除的目录及应用文件的数据存储的基础。

实施例三

如图6所示,本实施例的文件删除装置包括:数据块指针获取单元201用于获取指向存储有目录数据和所述目录下应用文件数据的数据块的数据块指针集;目录节点获取单元202用于获取所述目录的目录索引节点信息以及所述应用文件的文件索引节点信息;文件节点获取单元203用于获取所述应用文件与所述数据块指针的位置信息,和所述应用文件与所述文件索引节点信息的位置信息;数据释放单元204用于根据文件节点获取单元203获取的应用文件与数据块指针的位置信息从数据块指针获取单元201的数据块指针集中获取待删除应用文件对应的数据块指针,释放所述数据块指针指向的数据块中的应用文件数据;并根据文件节点获取单元203的应用文件与所述文件索引节点信息的位置信息释放待删除应用文件对应的文件索引节点信息。

如图7所示,本实施例的文件删除方法流程包括:获取指向存储有目录数据和所述目录下应用文件数据的数据块的数据块指针集,获取所述目录的目录索引节点信息以及所述应用文件的文件索引节点信息,获取所述应用文件与所述数据块指针的位置信息和所述应用文件与所述文件索引节点信息的位置信息(步骤S201);根据所述的应用文件与数据块指针的位置信息从所述的数据块指针集中获取待删除应用文件对应的数据块指针,释放所述数据块指针指向的数据块中的应用文件数据;并根据所述的应用文件与所述文件索引节点信息的位置信息释放待删除应用文件对应的文件索引节点信息(步骤S202)。

为说明如何删除文件的实施例,以图3和图4进行说明。如图3所示,根目录1000的索引节点号(索引节点信息)为1000,子目录2000的索引节点号为2000,应用文件3000的索引节点号为3000。如果要删除应用文件3000则进行以下步骤:

如图4所示,获取根目录1000的三个属性文件:数据块指针列表1001、目录节点列表1002和文件节点列表1003;获取应用文件偏移位置列表3001。

从偏移位置列表3001可知:文件节点列表偏移指针5指向文件节点列表的第5个文件索引节点号3000;数据块指针列表偏移指针5、6、7、8、9依次指向数据块指针列表的第5个数据块指针500、第6个数据块指针501、第7个数据块指针502、第8个数据块指针503和第9个数据块指针504。

将数据块指针500、501、502、503和504所指的非易失存储器数据块上存储的数据释放,并将文件节点列表的第5个文件索引节点号3000释放掉,即可实现对根目录1000下的应用文件3000的删除。

为了不遍历目录下的文件就可以找到这个目录下的所有文件占用的磁盘资源,同时也为了提高删除目录的效率,对文件的存储结构进行了改变,为每个目录增加数据块指针列表、目录节点列表和文件节点列表;为应用文件增加偏移位置列表。从而使删除目录时,只需根据偏移位置列表获取数据块指针列表中所有待删除文件的数据块指针并释放这些指针所指数据块的数据,并删除目录节点列表和文件节点列表中待删除目录及其应用文件的索引节点信息即可。实现了不用遍历目录下的文件就能够释放这些文件占用的磁盘资源。

实施例四

为说明如何删除文件的实施例,以图3、图4和图5进行说明。如图3所示,根目录1000的索引节点号(索引节点信息)为1000,子目录2000的索引节点号为2000,应用文件3000的索引节点号为3000。在子目录2000下存储应用文件3100、应用文件3200、应用文件3300、应用文件3400和应用文件3500,其中五个子目录应用文件的索引节点号依次为3100、3200、3300、3400和3500。

在如图4所示的目录节点列表1002中加入了子目录2000的目录索引节点号2000。如果要删除子目录2000及其五个应用文件则进行以下步骤:

如图5所示,获取子目录2000的三个属性文件:数据块指针列表2001、目录节点列表2002和文件节点列表2003。获取应用文件3100的偏移位置列表3101、应用文件3200的偏移位置列表3201、应用文件3300的偏移位置列表3301、应用文件3400的偏移位置列表3401以及应用文件3500的偏移位置列表3501。

根据偏移位置列表3101可知:文件节点列表偏移指针5指向文件节点列表的第5个文件索引节点号3100;数据块指针列表偏移指针5指向数据块指针列表的第5个数据块指针700。

根据偏移位置列表3201可知:文件节点列表偏移指针6指向文件节点列表的第6个文件索引节点号3200;数据块指针列表偏移指针6指向数据块指针列表的第6个数据块指针701。

根据偏移位置列表3301可知:文件节点列表偏移指针7指向文件节点列表的第7个文件索引节点号3300;数据块指针列表偏移指针7指向数据块指针列表的第7个数据块指针702。

根据偏移位置列表3401可知:文件节点列表偏移指针8指向文件节点列表的第8个文件索引节点号3400;数据块指针列表偏移指针8指向数据块指针列表的第8个数据块指针703。

根据偏移位置列表3501可知:文件节点列表偏移指针9指向文件节点列表的第9个文件索引节点号3500;数据块指针列表偏移指针9指向数据块指针列表的第9个数据块指针704。

从目录节点列表2002可知:目录节点列表2002中的偏移位置指针2指向目录节点列表1002中的目录索引节点号2000。

将数据块指针700、701、702、703和704所指的非易失存储器数据块上存储的数据释放;将文件节点列表2003的第5、6、7、8、9位对应的文件索引节点号3100、3200、3300、3400、3500释放;子目录2000对应的数据块指针为621,数据块指针列表2001对应的数据块指针为622、目录节点列表2002对应的数据块指针为623和文件节点列表2003对应的数据块指针为624,将数据块指针621、622、623、624对应的非易失存储器数据块上存储的数据释放;并将目录节点列表1002中的子目录2000的目录索引节点号2000释放掉。即可实现对子目录2000及其五个应用文件的删除。

在类似视频监控等视频文件应用中,目录的个数以及级数一般是很小的,同时目录中存在大量的文件。在这种应用中,删除信息也往往采用删除整个目录的方式。

为了不遍历目录下的文件就可以找到这个目录下的所有文件占用的磁盘资源,同时也为了提高删除目录的效率,对文件的存储结构进行了改变,为每个目录增加数据块指针列表、目录节点列表和文件节点列表;为应用文件增加偏移位置列表。从而使删除目录时,只需根据偏移位置列表获取数据块指针列表中所有待删除文件的数据块指针并释放这些指针所指数据块的数据,并删除目录节点列表和文件节点列表中待删除目录及其应用文件的索引节点信息即可。实现了不用遍历目录下的文件就能够释放这些文件占用的磁盘资源。

以上具体实施方式仅用于说明本发明,而非用于限定本发明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号