首页> 中国专利> 一种扩展短文件名生成方法、文件访问方法以及设备

一种扩展短文件名生成方法、文件访问方法以及设备

摘要

本申请实施例提供一种扩展短文件名生成方法、文件访问方法以及设备。扩展短文件名生成方法包括根据主引导记录确定文件系统的数据区;读取数据区中的目录项信息,得到数据区中文件的存储路径;获取第一文件的第一文件名中设定个数的字符,得到第一文件的第二文件名;如果存储路径包括至少一级子目录,根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名;如果存储路径不包括子目录,根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。基于扩展短文件名访问文件,提高访问效率,节约访问文件的资源开销。

著录项

  • 公开/公告号CN112181910A

    专利类型发明专利

  • 公开/公告日2021-01-05

    原文格式PDF

  • 申请/专利权人 炬芯科技股份有限公司;

    申请/专利号CN202011021467.6

  • 发明设计人 汪辉;吕锦昂;

    申请日2020-09-25

  • 分类号G06F16/16(20190101);G06F16/13(20190101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人刘醒晗

  • 地址 519085 广东省珠海市高新区唐家湾镇科技四路1号1#厂房一层C区

  • 入库时间 2023-06-19 09:26:02

说明书

技术领域

本申请涉及计算机文件系统领域,尤其涉及一种扩展短文件名生成方法、文件访问方法以及设备。

背景技术

FAT12、FAT16为DOS系统使用的文件系统,其采用8.3格式对目标文件的存储路径进行转换,转换后的存储路径中短文件名不超过8字节,文件扩展名不超过3字节,短文件名和文件扩展名用点号(·)分隔。随着技术的发展,FAT32文件系统支持长文件名,为了实现与FAT12/FAT16文件系统的兼容,FAT32文件系统依然支持8.3格式的短文件名。

对于Windows系统中使用的exFAT文件系统,不支持8.3格式的短文件名,且根据8.3格式对应的存储路径访问目标文件的性能较低。因此,需要对短文件名生成方法进行扩展。

发明内容

本申请实施例提供一种扩展短文件名生成方法以及设备,用以生成扩展短文件名。

第一方面,本申请实施例提供一种扩展短文件名生成方法,包括:

设备开机启动时,读取接入设备的外部存储设备的主引导记录,根据主引导记录确定文件系统的数据区;

读取数据区中的目录项信息,得到数据区中文件的存储路径;

获取存储路径中文件的第一文件名中设定个数的字符,得到文件的第二文件名;

如果存储路径包括至少一级子目录,则根据存储路径中各级子目录的位置以及文件在最低一级子目录的位置,确定各级子目录的位置索引以及文件的位置索引,并根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名;

如果存储路径不包括子目录,则根据存储路径中文件在根目录的位置,确定文件的位置索引,并根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。

本申请的一些实施例中,如果存储路径包括至少一级子目录,文件的扩展短文件名中各级子目录的位置索引按照子目录级别从高到低的顺序排列。

本申请的一些实施例中,扩展短文件名中还包括扩展短文件名类型标识;

如果存储路径包含至少一级子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件所在的各级子目录的位置索引、文件的位置索引、文件的第二文件名;

如果存储路径不包含子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件的位置索引、文件的第二文件名。

本申请的一些实施例中,如果存储路径包含至少一级子目录,文件的扩展短文件名中,各级子目录的位置索引以及最低一级子目录的位置索引与文件的位置索引之间还设置有第一分隔符,文件的位置索引与文件的第二文件名之间还设置有第二分隔符;

如果存储路径不包含子目录,文件的扩展短文件名中,文件的位置索引与文件的第二文件名之间还设置有第二分隔符。

本申请的一些实施例中,读取数据区中的目录项信息,得到数据区中文件的存储路径,包括:

读取数据区中的目录项信息,得到数据区中指定文件格式的文件的存储路径。

第二方面,本申请实施例提供一种扩展短文件名生成设备,包括:

文件路径读取模块,用于设备开机启动时,读取接入设备的外部存储设备的主引导记录,根据主引导记录确定文件系统的数据区;读取数据区中的目录项信息,得到数据区中文件的存储路径;

文件名获取模块,用于获取存储路径中文件的第一文件名中设定个数的字符,得到文件的第二文件名;

位置索引确定模块,用于如果存储路径包括至少一级子目录,则根据存储路径中各级子目录的位置以及文件在最低一级子目录的位置,确定各级子目录的位置索引以及文件的位置索引;或者,用于如果存储路径不包括子目录,则根据存储路径中文件在根目录的位置,确定文件的位置索引;

扩展短文件名生成模块,用于如果存储路径包括至少一级子目录,根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名,或者,如果存储路径不包括子目录,根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。

本申请实施例还提供一种文件访问方法以及设备,用以提高访问目标文件的效率,降低访问目标文件的资源消耗。

第三方面,本申请实施例提供一种文件访问方法,包括:

接收文件访问请求,获取文件访问请求所访问的目标文件的扩展短文件名,扩展短文件名包括目标文件所在的各级子目录的位置索引、目标文件的位置索引以及目标文件的第二文件名,各级子目录的位置索引是根据各级子目录的位置确定的,目标文件的位置索引是根据目标文件在最低一级子目录的位置确定的;或者,扩展短文件名包括目标文件的位置索引以及目标文件的第二文件名,目标文件的位置索引是根据目标文件在根目录的位置确定的;其中,目标文件的第二文件名是从目标文件的第一文件名中获取设定个数的字符得到的;

根据扩展短文件名,获取目标文件;

根据获取到的目标文件响应文件访问请求。

本申请的一些实施例中,扩展短文件名中还包括扩展短文件名类型标识;

扩展短文件名中依次包括:扩展短文件名类型标识、文件所在的各级子目录的位置索引、文件的位置索引、文件的第二文件名;或者

扩展短文件名中依次包括:扩展短文件名类型标识、文件的位置索引、文件的第二文件名。

第四方面,本申请实施例提供一种文件访问设备,包括:

接收模块,用于接收文件访问请求,获取文件访问请求所访问的目标文件的扩展短文件名,扩展短文件名包括目标文件所在的各级子目录的位置索引、目标文件的位置索引以及目标文件的第二文件名,各级子目录的位置索引是根据各级子目录的位置确定的,目标文件的位置索引是根据目标文件在最低一级子目录的位置确定的;或者,扩展短文件名包括目标文件的位置索引以及目标文件的第二文件名,目标文件的位置索引是根据目标文件在根目录的位置确定的;其中,目标文件的第二文件名是从目标文件的第一文件名中获取设定个数的字符得到的;

文件获取模块,用于根据扩展短文件名,获取目标文件;

请求响应模块,用于根据获取到的目标文件响应文件访问请求。

第五方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行扩展短文件名生成方法以及文件访问方法。

本申请的上述实施例中,设备开机启动时,根据读取到的接入设备的外部存储设备的主引导记录,确定文件系统的数据区后,读取数据区中的目录项信息,得到数据区中文件的存储路径,并从存储路径中文件的第一文件名中获取设定个数的字符得到文件的第二文件名;根据存储路径中是否包含子目录生成不同的扩展短文件名,具体的,如果存储路径包括至少一级子目录,则根据存储路径中各级子目录的位置以及文件在最低一级子目录的位置,确定各级子目录的位置索引以及文件的位置索引,并根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名;如果存储路径不包括子目录,则根据存储路径中文件在根目录的位置,确定文件的位置索引,并根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。由于生成的扩展短文件名中包含位置索引,基于生成的扩展短文件名中的位置索引可以快速定位文件的位置,提高访问文件的效率;再者,相对于长文件名,扩展短文件名占用的字符数较少,降低了访问文件的资源消耗。

附图说明

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

图1示例性示出了本申请实施例提供的文件存储路径转换方法的流程图;

图2示例性示出了本申请实施例提供的文件访问方法的流程图;

图3a示例性示出了本申请实施例提供的根据第一存储路径访问目标文件的示意图;

图3b示例性示出了本申请实施例提供的根据第二存储路径访问目标文件的示意图;

图4示例性示出了本申请实施例提供的文件存储路径转换装置结构图;

图5示例性示出了本申请实施例提供的文件访问设备的结构图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。

应当理解,本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。

本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。

扩展文件分配表(Extended File Allocation Table File System,exFAT)是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统。exFAT文件系统是SD卡和U盘常使用的文件系统,嵌入式设备通常需要访问SD卡或U盘中的文件,比如蓝牙音箱读取MP3文件进行播放。

当前,exFAT文件系统中支持Unicode编码的长文件名,最多占用512字节,即设备获取到目标文件的名字需要至多512字节的资源消耗。若采用统一资源定位符(UniformResource Locator,URL)方式访问文件,需要逐层访问多个子目录,消耗资源较多,且访问文件的效率较低。而对于音频设备等嵌入式设备来说,资源有限,且用户在使用过程中一般不会关注文件名。

为了解决上述问题,本申请的实施例提供一种扩展短文件名生成方法。该方法,读取到文件的存储路径后,从存储路径中文件的第一文件名中获取设定个数的字符,得到文件的第二文件名,如果存储路径包括至少一级子目录,根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名,或者,如果存储路径不包括子目录,根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。一方面,各级子目录的位置索引是根据各级子目录的位置确定的,文件的位置索引是根据文件在最低一级子目录中的位置确定的,或者,文件的位置索引是根据文件在根目录中的位置确定的,因此基于扩展短文件名中的位置索引可以快速定位文件的位置,提高访问文件的效率;再者,从第一文件名中获取设定个数的字符得到第二文件名,与长文件名相比,扩展短文件名中占用的字符数较少,降低了访问文件的资源消耗。

值得说明的是,本申请实施例生成的扩展短文件名,不仅适用于exFAT文件系统,同样适用FAT12/FAT16/FAT32等文件系统。

需说明的是,本申请实施例生成的扩展短文件名的英文缩写为xSFN(ExpandShort File Name)。

下面结合附图对本申请实施例进行详细描述。

图1示例性示出了本申请实施例提供的扩展短文件名生成方法的流程图。该方法可由嵌入式设备(如蓝牙音箱)实现,如图1所示,该流程主要包括以下几步:

S101:设备开机启动时,读取接入设备的外部存储设备的主引导记录,根据主引导记录确定文件系统的数据区。

该步骤中,设备开机启动时,读取对已接入的外部存储设备(比如U盘、SD卡等)中的主引导记录(Master Boot Record,MBR),根据MBR确定文件系统的数据区。数据区为文件系统中用于存储用户数据的区域,以FAT32文件系统的数据区为例,数据区的由根目录、子目录和文件内容三部分组成。

S102:读取数据区中的目录项信息,得到数据区中文件的存储路径。

该步骤中,目录项信息包括文件信息或目录信息,得到的存储路径可以包括至少一级子目录,也可以不包括子目录,如果存储路径包括至少一级子目录,则存储路径为根目录、根目录下的至少一级子目录以及至少一级子目录中最低一级子目录下的文件的第一文件名;如果存储路径不包括子目录,则存储路径为根目录、根目录下文件名的第一文件名。其中,第一文件名为Unicode编码的长文件名,根目录在文件系统建立时被创建,除根目录以外的目录称为子目录,根目录下的子目录和子目录下子目录都称为子目录。根目录下的子目录称为第一级子目录、第一级子目录下的子目录称为第二级子目录,依次排列。文件存储于目录中。存储路径中依各子目录的级别由高到低排列。

其中,存储路径中,一个子目录也可作为下一级子目录的父目录,一个父目录包含一个或多个子目录,根目录和子目录中可以包含一个或多个文件。多个子目录可以属于同一级别。比如,外部存储设备为SD卡,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,存储路径2为“SD:/子目录D/123…文件B.mp3”,其中,存储路径中“:”后的“/”表示根目录,子目录A和子目录D属于同一级别的子目录,子目录A为子目录B的父目录,即子目录A的级别高于子目录B的级别,“123…文件A.mp3”位于最低一级子目录B下,“123…文件B.mp3”的子目录D下。

S103:获取存储路径中文件的第一文件名中设定个数的字符,得到文件的第二文件名。

该步骤中,预先设定第二文件名的字符数,根据文件的第一文件名的字符数确定第二文件名。具体的,设定第二文件名占5个Unicode字符,判断文件的第一文件名的字符数是否大于5个Unicode字符,若是,则从第一文件名的尾部开始截取5个Unicode字符作为第二文件名;否则将第一文件名作为第二文件名。比如,第一文件名为“123…文件A.mp3”,截取后的第二文件名为“A.mp3”需说明的是,本申请对设定的字符数不做限制性要求,可根据实际需要进行设定。

其中,对第一文件名进行截取时从第一文件名的尾部开始,使得截取后的第二文件名包含文件的文件扩展名。文件扩展名可用于对文件进行过滤。

举例来说,音频设备(比如蓝牙音箱)可以播放音频文件,音频文件的文件扩展名包含“.mp3”,因此音频设备仅读取包含文件扩展名为“.mp3”的音频文件,对于包含文件扩展名为“.exe”文件,音频设备直接将其过滤掉,不进行读取,提高扩展短文件名的生成效率,节约资源开销。

S104:如果存储路径包括至少一级子目录,则根据存储路径中各级子目录的位置以及文件在最低一级子目录的位置,确定各级子目录的位置索引以及文件的位置索引,并根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名。

该步骤中,如果存储路径包括至少一级子目录,根据存储路径中各级子目录在所在父目录中的位置确定各级子目录的位置索引,以及根据文件在存储路径中最低一级子目录中的位置,确定文件的位置索引,根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名。

其中,位置索引可用16进制的字符串表示,位置索引的字符数可预先设定。各级子目录的位置索引的字符数可以与文件的位置索引的字符数相同,也可以不同。各级子目录的位置索引按照子目录级别从高到低的顺序排列。

举例来说,各级子目录的位置索引与文件的位置索引的均为8字符,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,其中,子目录A为根目录下的3个文件,子目录A的位置索引为00000003,子目录A为子目录B的父目录,记为父目录A,子目录B为父目录A下的第29个文件,子目录B的位置索引为0000001D,“123…文件A.mp3”为子目录B下的第1个文件,“123…文件A.mp3”的位置索引为00000000,根据子目录A、子目录B、“123…文件A.mp3”的位置索引以及“A.mp3”生成的扩展短文件名为“SD:/000000030000001D00000000A.mp3”。

S105:如果所存储路径不包括子目录,则根据存储路径中文件在根目录的位置,确定文件的位置索引,并根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。

该步骤中,如果存储路径不包括子目录,根据存储路径中根据文件在存储路径中根目录中的位置,确定文件的位置索引,根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。

举例来说,存储路径3为“SD:/123…文件C.mp3”,其中,“123…文件C.mp3”为根目录下的第8个文件,“123…文件C.mp3”的位置索引为00000008,“123…文件C.mp3”的第二文件名为“C.mp3”。根据“123…文件C.mp3”的位置索引以及“C.mp3”生成的扩展短文件名为“SD:/00000008C.mp3”。

需说明的是,本申请实施例中步骤S104和步骤S105可单独执行,也可并行执行,S105也可先于S104执行。

在一些实施例中,可预先设置扩展短文件名中的各组成部分占用的字符数,通过字符个数区分各级子目录的位置索引、文件的位置索引以及第二文件名。

举例来说,设定位置索引占8字符,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,生成的扩展短文件名为“SD:/000000030000001D00000000A.mp3”,由位置索引占8字符可知,根目录后的8个字符00000003为第一级子目录(子目录A)的位置索引,“3”后的8个字符0000001D为第二级子目录(子目录B)的位置索引,“D”后的8个字符00000000为文件“123…文件A.mp3”的位置索引,最后5个字符为第二文件名。

本申请的实施例中,生成的扩展短文件名可以存储在预先设置的数据表,该数据表仅用于存储扩展短文件名,在访问目标文件时,可根据该数据表中的扩展短文件名访问目标文件。

本申请的上述实施例中,如果存储路径包括至少一级子目录,生成的扩展短文件名中包括各级子目录的位置索引、文件的位置索引,文件的第二文件名;如果存储路径不包括子目录,生成的扩展短文件名中包括文件的位置索引,文件的第二文件名。一方面,各自子目录的位置索引是根据各级子目录在父目录中的位置得到的,文件的位置索引是根据文件在最低一级子目录或根目录中的位置得到的,因此扩展短文件名中的位置索引可以快速定位文件的位置,提高设备访问文件的效率;另一方面,第二文件名是从第一文件名中获取设定个数的字符得到的,扩展短文件名中包括各级子目录的位置索引、文件的位置索引、第二文件名,或者,扩展短文件名中包括文件的位置索引、第二文件名,占用的字符数较少,与exFAT文件系统采用Unicode编码的长文件名相比,基于扩展短文件名访问文件,降低了访问文件的资源消耗。

本申请的扩展短文件名中,还包括扩展短文件名类型标识,扩展短文件名类型标识位于位置索引前,通过扩展短文件名类型标识,可与其他格式的短文件名(比如8.3格式的短文件名)进行区分。如果存储路径包含至少一级子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件所在的各级子目录的位置索引、文件的位置索引、文件的第二文件名;如果存储路径不包含子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件的位置索引、文件的第二文件名。其中,扩展短文件名类型标识可用“SN”表示,占两字符。

比如,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,包含两级子目录,生成的扩展短文件名为“SD:/SN00000003SN0000001DSN00000000A.mp3”,再比如,存储路径3为“SD:/123…文件C.mp3”,生成的扩展短文件名为“SD:/SN00000008C.mp3”。

本申请的实施例中,如果存储路径包含至少一级子目录,文件的扩展短文件名中,各级子目录的位置索引以及最低一级子目录的位置索引与文件的位置索引之间还设置有第一分隔符,文件的位置索引与文件的第二文件名之间还设置有第二分隔符;如果存储路径不包含子目录,文件的扩展短文件名中,文件的位置索引与文件的第二文件名之间还设置有第二分隔符。第一分隔符和第二分隔符可以相同也可以不同。

举例来说,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,生成的扩展短文件名为“SD:/SN00000003/SN0000001D/SN00000000~A.mp3”,其中,00000003为子目录A的位置索引,0000001D为子目录B的位置索引,00000000为文件“123…文件A.mp3”的位置索引,子目录A和子目录B、子目录B和“123…文件A.mp3”的位置索引间用第一分隔符“/”分隔,文件“123…文件A.mp3”的位置索引和第二文件名间用第二分隔符“~”分隔。

需说明的是,本申请的实施例对使用的分隔符不做限制性要求,可使用“//”“|”“-”“/”“~”等。

在一些实施例中,扩展短文件名中还包括各级子目录的第二目录名,第二目录名位于对应的子目录的位置索引后,与子目录的位置索用第二分隔符分隔。第二目录名的获取方式与第二文件名的获取方式相似,可预先设定第二目录名的字符个数。

在具体实施时,若存储路径中各级子目录的第一目录名的字符数大于设定值,可根据设定字符对各级目录的第一目录名进行截取。以第一级子目录E为例,设定子目录的第二目录名占4字符,若第一级子目录E的第一目录名大于4个字符,则从第一目录名的首部开始截取4个字符作为第二目录名,否则,将第一目录名作为第二目录名。

举例来说,存储路径1为“SD:/子目录A/子目录B/123…文件A.mp3”,生成的扩展短文件名为“SD:/SN00000003~dir1/SN0000001D~dir2/SN00000000~A.mp3”,其中,dir1为子目录A的第二目录名,dir2为子目录B的第二目录名。

需说明的是,本申请实施例对第二目录名的截取方式不做限制性要求,比如也可从第一目录名的尾部开始截取。

根据上述实施例,以扩展短文件名为“SD:/SN00000008~C.mp3”为例,表1示例性示出了扩展短文件名中各组成部分的含义。如表1示出的,扩展短文件名类型标识为扩展短文件名的第一个位置,其在扩展短文件名中的位置偏移为0字符,用“SN”表示,占2字符,可通过“SN”与其他格式的短文件名进行区分。文件的位置索引在扩展短文件名中的位置偏移为2字符,可用16进制的字符串进行表示,占8字符,文件的位置索引用于表示文件在目录中的位置,位置索引类似于一本书中某一章节的页码索引,可用于快速定位文件的位置。分隔符可用“~”表示,占1字符,其在扩展短文件名中的位置偏移为10字符,分隔符后一个字符为第二文件名的起始位置,第二文件名在扩展短文件名中的偏移位置为11字符,占用的字符小于16,通过分隔符可以快速确定长文件名的截取部分。

表1、扩展短文件名中各组成部分的含义

下面以2个示例说明生成扩展短文件名的结构。

比如,对于SD卡根目录下存储的一个长文件名格式的音频文件,如“SD:/1234…abc.mp3”,生成扩展短文件名为“SD:/SN000001C0~abc.mp3”,其中,“:”后的“/”为根目录,“SN”为扩展短文件名类型标识,“000001C0”为16进制表示的音频文件的位置索引,表示“1234…abc.mp3”为根目录下的第448个文件,“~”为第二分隔符,“abc.mp3”为第二文件名,其为从第一文件名“1234…abc.mp3”的尾部开始截取7个字符得到的。

再比如,对于SD卡一级子目录下存储的包含第一目录名和第一文件名的长文件名格式的音频文件,如“SD:/1234…dir1/1234…abcd.mp3”,生成的扩展短文件名为“SD:/SN00000220~dir1/SN00000000~abcd.mp3”,其中,“1234…dir1”表示第一目录名,“1234…abcd.mp3”表示第一文件名,“:”后的“/”为根目录,“SN”为扩展短文件名类型标识,“00000220”为16进制表示的子目录“1234…dir1”的位置索引,表示“1234…dir1”为根目录下的第544个目录,“~”为目录“1234…dir1”的位置索引和第二目录名间的分隔符,“dir1”为第二目录名,其为从第一目录名“1234…dir1”的尾部开始截取4个字符得到的,第二目录名和文件的位置索引用“/”分隔,音频文件“1234…abcd.mp3”的位置索引和第二文件名间用“~”分隔,“abcd.mp3”为第二文件名,其为从第一文件名“1234…abcd.mp3”的尾部开始截取8个字符得到的。

在一些实施例中,还可仅生成指定文件格式的文件的扩展短文件名。具体的,可通过接收的指示信息,读取数据区中的目录项信息,得到数据区中指定文件格式的文件的存储路径,其中指示信息用于指示指定的文件格式。还可对指定文件格式进行预先设置。通过对指定文件格式的文件的存储路径,可以仅对指定文件格式的文件生成扩展短文件名,节约了资源开销。

基于本申请上述实施例生成的扩展短文件名,可以实现目标文件的快速访问。

图2示例性示出了本申请实施例提供的文件访问方法。如图所示,该流程由嵌入式设备(如蓝牙音箱)执行,该流程包括以下几步:

S201:接收文件访问请求,获取文件访问请求所访问的目标文件的扩展短文件名。

该步骤中,文件访问请求携带所访问的目标文件的相关信息,比如文件名,根据文件访问请求获取目标文件的扩展多文件名,扩展短文件名包括目标文件所在的各级子目录的位置索引、目标文件的位置索引以及目标文件的第二文件名,各级子目录的位置索引是根据各级子目录的位置确定的,目标文件的位置索引是根据目标文件在最低一级子目录的位置确定的;或者,扩展短文件名包括目标文件的位置索引以及目标文件的第二文件名,目标文件的位置索引是根据目标文件在根目录的位置确定的;其中,目标文件的第二文件名是从目标文件的第一文件名中获取设定个数的字符得到的。

扩展短文件名的相关内容参见扩展短文件名生成方法部分的描述,在此不再重复。

S202:根据扩展短文件名,获取目标文件。

该步骤中,扩展短文件名中包含目标文件所在的各级子目录的位置索引、目标文件的位置索引以及第二文件名,或者,扩展短文件名中包含目标文件的位置索引以及第二文件名,由于各级子目录的位置索引是根据各级子目录的位置确定的,文件的位置索引是根据文件在目录中的位置确定的,可以通过位置索引快速定位目标文件的位置,无需一级一级的查找,提高的访问目标速度。

S303:根据获取到的目标文件响应文件访问请求。

该步骤中,可根据获取到的目标文件响应文件访问请求,比如,对于蓝牙音箱来说,播放获取到的目标文件。

下面以根据长文件名和扩展短文件名访问目标文件为例详细描述文件访问过程。

图3a示例性示出了本申请实施例提供的根据长文件名访问目标文件的示意图。如图3a所示,目录项包括目录或文件,不同层级的子目录的数量可以相同,也可以不同,即M、N为相同或不同的整数。采用URL方式基于长文件名访问目标文件,针对每一层目录项,都需要从目录表的第一个目录项开始查找,然后比对查找到的目录项名与目标目录项名是否匹配,若匹配,则进行下一级目录项查找,否则继续查找该级别的目录表,直至查找到目标目录项。因此,根据第一存储路径查找目标目录项与文件系统的复杂度有关系,文件系统中的文件数量越多,查找时间越长,访问文件的效率越低。

图3b示例性示出了本申请实施例提供的根据扩展短文件名访问目标文件的示意图。如图3b所示,基于扩展短文件名访问目标文件时,针对每一层级的目录项,可根据扩展短文件名中的位置索引直接定位到目标目录项,判断目录项名是否与目标目录项名匹配,若匹配则得到目标目录项,无需从目录表的第一个目录项开始逐一进行查找,访问目标文件的效率较高。

本申请实施例提供的扩展短文件名相对于长文件名来说,字符数较少,降低了访问目标文件的资源消耗。

例如,某一文件的长文件名为:SD:/1级子目录/2级子目录/3级子目录/4级子目录/5级子目录/6级子目录/7级子目录/8级子目录/音频文件.mp3,各级子目录的总字节数不超过512字节,通过长文件名访问“音频文件.mp3”的资源消耗最多为512字节,将上述长文件名转化为扩展短文件名后,每一级子目录的字节数不超过32字节,通过扩展短文件名访问“音频文件.mp3”的资源消耗为:(8*32)+32=288字节。因此,基于本申请实施例提供的扩展短文件名访问目标文件所需的资源消耗较少。

本申请的上述实施例中,基于本申请实施例生成的扩展短文件名访问目标文件,一方面,相对于Unicode编码格式的长文件名,扩展短文件名占用的字符数少,节约了访问目标文件的资源消耗,进而提升访问文件系统的性能;另一方面,扩展短文件名中包含位置索引,根据位置索引可快速定位目标文件的位置,提高了访问目标文件的效率。

基于相同的技术构思,本申请实施例提供了一种扩展短文件名生成设备,该设备可实现上述实施例中扩展短文件名生成方法。

参见图4,该设备包括文件路径读取模块401、文件名获取模块402、位置索引确定模块403、扩展短文件名生成模块404。

文件路径读取模块401,用于设备开机启动时,读取接入设备的外部存储设备的主引导记录,根据主引导记录确定文件系统的数据区;读取数据区中的目录项信息,得到数据区中文件的存储路径;

文件名获取模块402,用于获取存储路径中文件的第一文件名中设定个数的字符,得到文件的第二文件名;

位置索引确定模块403,用于如果存储路径包括至少一级子目录,则根据存储路径中各级子目录的位置以及文件在最低一级子目录的位置,确定各级子目录的位置索引以及文件的位置索引;或者,用于如果存储路径不包括子目录,则根据存储路径中文件在根目录的位置,确定文件的位置索引;

扩展短文件名生成模块404,用于如果存储路径包括至少一级子目录,根据各级子目录的位置索引、文件的位置索引以及第二文件名,生成文件的扩展短文件名,或者,如果存储路径不包括子目录,根据文件的位置索引以及第二文件名,生成文件的扩展短文件名。

本申请的一些实施例中,文件的扩展短文件名中各级子目录的位置索引按照子目录级别从高到低的顺序排列。

本申请的一些实施例中,扩展短文件名中还包括扩展短文件名类型标识;

如果存储路径包含至少一级子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件所在的各级子目录的位置索引、文件的位置索引、文件的第二文件名;

如果存储路径不包含子目录,扩展短文件名中依次包括:扩展短文件名类型标识、文件的位置索引、文件的第二文件名。

本申请的一些实施例中,如果存储路径包含至少一级子目录,文件的扩展短文件名中,各级子目录的位置索引以及最低一级子目录的位置索引与文件的位置索引之间还设置有第一分隔符,文件的位置索引与文件的第二文件名之间还设置有第二分隔符;

如果存储路径不包含子目录,文件的扩展短文件名中,文件的位置索引与文件的第二文件名之间还设置有第二分隔符。

本申请的一些实施例中,文件路径读取模块401具体用于:

读取数据区中的目录项信息,得到数据区中指定文件格式的文件的存储路径。

在此需要说明的是,本申请实施例提供的上述扩展短文件名生成设备,能够实现上述方法实施例所实现的扩展短文件名生成方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

基于相同的技术构思,本申请实施例提供了一种文件访问设备,该设备可实现上述实施例中文件访问的方法。

参见图5,该设备包括接收模块501、文件获取模块502、请求响应模块503。

接收模块501,用于接收文件访问请求,获取文件访问请求所访问的目标文件的扩展短文件名,扩展短文件名包括目标文件所在的各级子目录的位置索引、目标文件的位置索引以及目标文件的第二文件名,各级子目录的位置索引是根据各级子目录的位置确定的,目标文件的位置索引是根据目标文件在最低一级子目录的位置确定的;或者,扩展短文件名包括目标文件的位置索引以及目标文件的第二文件名,目标文件的位置索引是根据目标文件在根目录的位置确定的;其中,目标文件的第二文件名是从目标文件的第一文件名中获取设定个数的字符得到的;

文件获取模块502,用于根据扩展短文件名,获取目标文件;

请求响应模块503,用于根据获取到的目标文件响应文件访问请求。

本申请的一些实施例中,扩展短文件名中各级子目录的位置索引按照子目录级别从高到低的顺序排列。

本申请的一些实施例中,扩展短文件名中还包括扩展短文件名类型标识;

扩展短文件名中依次包括:扩展短文件名类型标识、文件所在的各级子目录的位置索引、文件的位置索引、文件的第二文件名;或者

扩展短文件名中依次包括:扩展短文件名类型标识、文件的位置索引、文件的第二文件名。

本申请的一些实施例中,文件的扩展短文件名中,各级子目录的位置索引以及最低一级子目录的位置索引与文件的位置索引之间还设置有第一分隔符,文件的位置索引与文件的第二文件名之间还设置有第二分隔符;或者

文件的扩展短文件名中,文件的位置索引与文件的第二文件名之间还设置有第二分隔符。

在此需要说明的是,本申请实施例提供的上述文件访问设备,能够实现上述方法实施例所实现的文件访问方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号