CN113590550B - 文件创建方法、装置和电子设备 - Google Patents
文件创建方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113590550B CN113590550B CN202110868087.4A CN202110868087A CN113590550B CN 113590550 B CN113590550 B CN 113590550B CN 202110868087 A CN202110868087 A CN 202110868087A CN 113590550 B CN113590550 B CN 113590550B
- Authority
- CN
- China
- Prior art keywords
- file
- structure body
- file name
- name
- cluster
- 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
Links
Images
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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (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)
Abstract
本发明实施例提供了一种文件创建方法、装置和电子设备。本发明实施例提供的技术方案中,根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;根据所述初始化结构体,判断所述第一文件名是否重名;若判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;在所述空闲位置处创建与所述第一文件名对应的文件,能够使得FATFS不会随着文件变多而存储时间变长,保证文件系统的读写性能。
Description
【技术领域】
本发明涉及信息技术领域,尤其涉及一种文件创建方法、装置和电子设备。
【背景技术】
在使用文件分配表文件系统(File Allocation Table File System,FATFS)的电子设备中,当用户向某一空目录创建文件时,存储文件过程处理速度很快;当目录下存储的文件到达一定数量,再向该目录创建文件时,存储文件过程处理速度变慢,存储时间变长。
因此,当前的FATFS随着文件变多,存储时间逐渐变长,从而导致文件系统读写性能变差。
【发明内容】
有鉴于此,本发明实施例提供了一种文件创建方法、装置和电子设备,能够使得FATFS不会随着文件变多而存储时间变长,保证文件系统的读写性能。
第一方面,本发明实施例提供了一种文件创建方法,所述方法包括:
根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;
根据所述初始化结构体,判断所述第一文件名是否重名;
若判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;
在所述空闲位置处创建与所述第一文件名对应的文件。
可选地,所述根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体,具体包括:
根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中;
查找所述当前簇中的所述空闲位置,并将查找结果记录在所述空闲位置结构体中;
判断所述目录簇缓存是否全部遍历;
若判断出所述目录簇缓存全部遍历,继续执行所述根据所述初始化结构体,判断所述第一文件名是否重名的步骤。
可选地,所述判断所述目录簇缓存是否全部遍历之后,还包括:
若判断出所述目录簇未全部遍历,将下一簇作为所述当前簇,并继续执行所述根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中的步骤。
可选地,所述文件系统包括FAT文件系统。
可选地,所述第一文件名的命名方式包括随机数/字母+时间戳+后缀。
另一方面,本发明实施例提供了一种文件创建装置,所述装置包括:
遍历模块,用于根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;
判断模块,用于根据所述初始化结构体,判断所述第一文件名是否重名;
获取模块,用于若所述判断模块判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;
创建模块,用于在所述空闲位置处创建与所述第一文件名对应的文件。
可选地,所述遍历模块,具体包括:
寻找记录子模块,用于根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中;
查找记录子模块,用于查找所述当前簇中的所述空闲位置,并将查找结果记录在所述空闲位置结构体中;
判断子模块,用于判断所述目录簇缓存是否全部遍历;
所述判断子模块还用于若所述判断子模块判断出所述目录簇缓存全部遍历,继续执行所述根据所述初始化结构体,判断所述第一文件名是否重名的步骤。
可选地,所述遍历模块,还包括:
处理子模块,用于若所述判断子模块判断出所述目录簇未全部遍历,将下一簇作为所述当前簇,并继续执行所述根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中的操作。
另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述文件创建方法。
另一方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述文件创建方法的步骤。
本发明实施例提供的文件创建方法、装置和电子设备的技术方案中,根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;根据所述初始化结构体,判断所述第一文件名是否重名;若判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;在所述空闲位置处创建与所述第一文件名对应的文件,能够使得FATFS不会随着文件变多而存储时间变长,保证文件系统的读写性能。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一实施例提供的一种文件创建方法的流程图;
图2为本发明又一实施例提供的一种文件创建方法的流程图;
图3为图2中根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体的具体流程图;
图4为本发明一实施例提供的一种文件创建装置的结构示意图;
图5为图4中遍历模块的具体结构示意图;
图6为本发明实施例提供的一种电子设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
文件系统(File system,FS)用于管理和存储文件信息。FATFS是一种使用标准C语言编写的专为小型嵌入式系统设计的开源文件系统格式,容易移植和使用。在FAT文件系统中,每一个目录或文件都唯一对应一个短目录项(Short Entry),短目录项记录着目录或文件的属性;若目录名或文件名长度超过8个字节,则使用长目录项(Long Entry)存储全文件名。
FATFS是以簇为单位存放数据,一个目录的数据至少占用一个簇,簇的大小是扇区大小的倍数。扇区大小为512byte,因此簇的大小可以为2K、4K或8K等。目录中存储的数据是当前目录下的文件的长短目录项。一个目录项占用32个字节,一个文件的目录项至少占用64个字节,若簇的大小按4K计算,则一个簇最多可以存放64个文件的目录项。若当目录中的文件超过64个,则需要申请新簇。
在使用FATFS的电子设备中,向某目录下创建文件并写数据时,目前的处理过程是:首先,遍历整个目录,查找当前是否与创建的文件有重名的文件;然后,查找当前目录下连续的空闲位置,以存放要创建的文件长短目录项;最后,若需要修改文件名,则需要再次遍历整个目录。
随着目录项下的文件变多,遍历整个目录下的文件需要进行多次读盘的IO操作,有些电子设备因硬件原因多次IO操作时间变长,查找时间逐渐变长,导致存储文件时间变慢,文件系统读写性能变差。
进一步的,FATFS中生成短文件名的规则包括:取长文件名的前6个字符加上“~1”形成短文件名,扩展名不变;如果已存在这个文件名,则符号“~”后的数字递增,直到5;如果文件名中符号“~”后面的数字达到5,则短文件名只使用长文件名的前两个字母;通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀“~1”直到最后。
生成短文件名后,查找当前目录下是否有重名短文件名,文件多的目录中,文件名的前6个字符经常相同,而后缀不同,因此生成的短文件名很快就会相同,需要多次循环查找当前目录以生成没有重名的短文件名,十分耗时。
综上,当前的FATFS随着文件变多,存储时间逐渐变长,从而导致文件系统读写性能变差。
针对上述技术问题,本发明实施例提供一种文件创建方法、装置和电子设备。
图1为本发明一实施例提供的一种文件创建方法的流程图,如图1所示,该方法包括:
步骤101、根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体。
步骤102、根据初始化结构体,判断第一文件名是否重名。
步骤103、若判断出第一文件名不重名,空闲位置结构体中获取空闲位置。
步骤104、在空闲位置处创建与第一文件名对应的文件。
本发明实施例提供的一种文件创建方法的技术方案中,根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;根据初始化结构体,判断第一文件名是否重名;若判断出第一文件名不重名,从空闲位置结构体中获取空闲位置;在空闲位置处创建与第一文件名对应的文件,能够使得FAT文件系统不会随着文件变多而存储时间变长,保证文件系统的读写性能。
图2为本发明又一实施例提供的一种文件创建方法的流程图,如图2所示,该方法包括:
步骤201、根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体。
本发明实施例中,文件系统包括FAT文件系统,即FATFS。第一文件名指的是用户在文件系统中创建文件,即添加entry时输入的文件名。
本发明实施例中,第一文件名的命名方式包括随机数/字母+时间戳+后缀。
由上述可知,当前的FATFS中,簇中存放的目录项数目与文件名的长度有关,因此本发明实施例在将文件名变短的基础上更改文件名的命名规则,根据不同的应用场景,可采用随机数/字母+时间戳+后缀的方式。文件名长度关系到长目录项个数,文件名短长目录项的个数就少,可使buff中存放的文件目录项变多,减少IO操作次数;根据短文件名生成的规则,采用随机数在前的方式,第一次自动生成的短文件名在目录下就无重复,因此只需遍历一次当前目录下的entry。
本发明实施例中,初始化结构体,用于存储最近已经查找过的5个文件的目录项信息缓存。目录项信息缓存包括长短目录项解析出来的内容,即长短文件名、长短目录项入口所在簇及偏移、相对于整个目录的偏移、属性等信息。
本发明实施例中,空闲位置结构体,用于存储当前目录的空闲entry所在的空闲位置、在整个目录中的偏移、所在簇及偏移。
本发明实施例中,短文件名创建完成后,需要向目录下创建文件,创建文件的每个过程都是一个函数调用,每个函数可单独被用户接口调用,若直接去掉某个函数中的查找过程,该函数就不再完整,不能被单独调用。因此,为减少每次查找的过程,本发明实施例在文件系统的内存中创建两个结构体,即初始化结构体和空闲位置结构体。初始化结构体存储最近已经查找过的5个文件的目录项信息缓存,包括长短目录项解析出来的内容:长短文件名、长短目录项入口所在簇及偏移、相对于整个目录的偏移、属性等信息。空闲位置结构体存储当前目录的空闲entry所在的空闲位置、在整个目录中的偏移、所在簇及偏移,具有连续的字节数。
需要说明的是,本发明实施例中的初始化结构体和空闲位置结构体在内存中最多占用50byte,与增大一次IO操作的buffer相比更加节省内存空间。
本发明实施例中,如图3所示,步骤201具体包括:
步骤2011、根据第一文件名,在目录簇缓存的当前簇中寻找与第一文件名重名的文件,并将寻找结果记录在初始化结构体中。
步骤2012、查找当前簇中的空闲位置,并将查找结果记录在空闲位置结构体中。
步骤2013、判断目录簇缓存是否全部遍历,若是,继续执行步骤202;若否,执行步骤2014。
步骤2014、将下一簇作为当前簇,并继续执行步骤2011。
步骤202、根据初始化结构体,判断第一文件名是否重名,若是,执行步骤203;若否,执行步骤204。
步骤203、生成用于提示第一文件名重名的提示信息,并继续执行步骤201。
步骤204、从空闲位置结构体中获取空闲位置。
步骤205、在空闲位置处创建与第一文件名对应的文件。
本发明实施例中,对于文件夹下文件过多的情况,对该文件夹自动创建隐藏文件,记录该文件夹下文件的数据,即目录中所有长短目录名进和空闲entry所在的空闲位置。这样,创建新文件时仅需遍历该文件夹的隐藏文件,至少减少3倍的查找时间,提高文件系统的写效率。
本发明实施例提供的一种文件创建方法的技术方案中,根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;根据初始化结构体,判断第一文件名是否重名;若判断出第一文件名不重名,从空闲位置结构体中获取空闲位置;在空闲位置处创建与第一文件名对应的文件,能够使得FAT文件系统不会随着文件变多而存储时间变长,保证文件系统的读写性能。
图4为本发明一实施例提供的一种文件创建装置的结构示意图,如图4所示,所述装置包括:遍历模块31、判断模块32、提示模块33、获取模块34和创建模块35。
遍历模块31,用于根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体。
本发明实施例中,如图5所示,遍历模块31具体包括:寻找记录子模块311、查找记录子模块312、判断子模块313和处理子模块314。
寻找记录子模块311,用于根据第一文件名,在目录簇缓存的当前簇中寻找与第一文件名重名的文件,并将寻找结果记录在初始化结构体中;
查找记录子模块312,用于查找当前簇中的空闲位置,并将查找结果记录在空闲位置结构体中;
判断子模块313,用于判断目录簇缓存是否全部遍历;
处理子模块314,用于若判断子模块313判断出目录簇未全部遍历,将下一簇作为当前簇,并继续执行根据第一文件名,在目录簇缓存的当前簇中寻找与第一文件名重名的文件,并将寻找结果记录在初始化结构体中的操作。
判断子模块313还用于若判断子模块313判断出目录簇缓存全部遍历,继续执行根据初始化结构体,判断第一文件名是否重名的步骤。
判断模块32,用于根据初始化结构体,判断第一文件名是否重名。
提示模块33,用于若判断模块32判断出第一文件名重名,生成用于提示第一文件名重名的提示信息,并继续执行用于根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体的操作。
获取模块34,用于若判断模块32判断出第一文件名不重名,从空闲位置结构体中获取空闲位置。
创建模块35,用于在空闲位置处创建与第一文件名对应的文件。
本发明实施例提供的文件创建装置可用于实现上述图1至图3中的文件创建方法,具体描述可参见上述文件创建方法的实施例,此处不再重复描述。
所述文件创建装置,例如可以是:芯片、芯片模组或者芯片模组的一部分。
本发明实施例提供的一种文件创建装置的技术方案中,根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;根据初始化结构体,判断第一文件名是否重名;若判断出第一文件名不重名,从空闲位置结构体中获取空闲位置;在空闲位置处创建与第一文件名对应的文件,能够使得FAT文件系统不会随着文件变多而存储时间变长,保证文件系统的读写性能。
关于上述如图4至图5实施例中描述的各个装置、产品包含模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用或集成芯片的各个装置、产品其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者至少部分模块/单元可以采用软件程序的方式实现,该运行于芯片内部集成处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应于或集成芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同模块/单元可以位于芯片模组的同一件(例如芯片、电路模块等)或者不同组件中,至少部分/单元可以采用软件程序的方式实现,该软件程运行于芯片模组内部集成处理器剩余(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应或集成终端的各个装置、产品,其包含的模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者至少部分模块/单元可以采用软件程序的方式实现,该程序运行于终端内部集成的处理器,剩余(如果有)分模块/单元可以采用电路等硬件方式实现。
图6为本说明书电子设备一个实施例的结构示意图,如图6所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1~图3所示实施例提供的文件创建方法。
图6示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图6显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图6所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器21,存储器23,连接不同系统组件(包括存储器23和处理器21)的通信总线24。
通信总线24表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器23可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器23可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器23中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书所描述的实施例中的功能和/或方法。
处理器21通过运行存储在存储器23中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1~图3所示实施例提供的文件创建方法。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图3所示实施例提供的文件创建方法。
上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable ProgrammableRead Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (6)
1.一种文件创建方法,其特征在于,所述方法包括:
根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;
根据所述初始化结构体,判断所述第一文件名是否重名;
若判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;
在所述空闲位置处创建与所述第一文件名对应的文件;
所述根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体,具体包括:
根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中;
查找所述当前簇中的所述空闲位置,并将查找结果记录在所述空闲位置结构体中;
判断所述目录簇缓存是否全部遍历;
若判断出所述目录簇缓存全部遍历,继续执行所述根据所述初始化结构体,判断所述第一文件名是否重名的步骤;
若判断出所述目录簇未全部遍历,将下一簇作为所述当前簇,并继续执行所述根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中的步骤。
2.根据权利要求1所述的方法,其特征在于,所述文件系统包括FAT文件系统。
3.根据权利要求1所述的方法,其特征在于,所述第一文件名的命名方式包括随机数/字母+时间戳+后缀。
4.一种文件创建装置,其特征在于,所述装置包括:
遍历模块,用于根据用户在文件系统中创建文件时输入的第一文件名,通过遍历目录簇缓存以获得初始化结构体和空闲位置结构体;
判断模块,用于根据所述初始化结构体,判断所述第一文件名是否重名;
获取模块,用于若所述判断模块判断出所述第一文件名不重名,从所述空闲位置结构体中获取空闲位置;
创建模块,用于在所述空闲位置处创建与所述第一文件名对应的文件;
所述遍历模块,具体包括:
寻找记录子模块,用于根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中;
查找记录子模块,用于查找所述当前簇中的所述空闲位置,并将查找结果记录在所述空闲位置结构体中;
判断子模块,用于判断所述目录簇缓存是否全部遍历;
所述判断子模块还用于若所述判断子模块判断出所述目录簇缓存全部遍历,继续执行所述根据所述初始化结构体,判断所述第一文件名是否重名的步骤;
处理子模块,用于若所述判断子模块判断出所述目录簇未全部遍历,将下一簇作为所述当前簇,并继续执行所述根据所述第一文件名,在所述目录簇缓存的当前簇中寻找与所述第一文件名重名的文件,并将寻找结果记录在所述初始化结构体中的操作。
5.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-3任一项所述的文件创建方法。
6.一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求1-3任一项所述的文件创建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868087.4A CN113590550B (zh) | 2021-07-30 | 2021-07-30 | 文件创建方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110868087.4A CN113590550B (zh) | 2021-07-30 | 2021-07-30 | 文件创建方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590550A CN113590550A (zh) | 2021-11-02 |
CN113590550B true CN113590550B (zh) | 2023-06-16 |
Family
ID=78252188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110868087.4A Active CN113590550B (zh) | 2021-07-30 | 2021-07-30 | 文件创建方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590550B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179185B (zh) * | 2012-12-25 | 2015-07-08 | 中国科学院计算技术研究所 | 一种分布式文件系统客户端缓存中文件创建方法及其系统 |
CN104331428B (zh) * | 2014-10-20 | 2017-07-04 | 暨南大学 | 一种小文件和大文件的存储及访问方法 |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN110309102A (zh) * | 2019-07-10 | 2019-10-08 | 牛文运 | 一种批量文件生成方法及系统 |
CN112035420B (zh) * | 2020-09-03 | 2023-03-14 | 西北工业大学 | 数据共享方法、共享设备和系统 |
-
2021
- 2021-07-30 CN CN202110868087.4A patent/CN113590550B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113590550A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US9954964B2 (en) | Content suggestion for posting on communication network | |
CN108090078B (zh) | 文档在线预览方法及装置、存储介质、电子设备 | |
CN104636464B (zh) | 访问文件的方法和装置 | |
CN111831618A (zh) | 数据写入方法、数据读取方法、装置、设备及存储介质 | |
US20130263003A1 (en) | Method and apparatus for grouping video tracks in a video editing timeline | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
CN110704608A (zh) | 文本主题生成方法、装置和计算机设备 | |
CN113688139B (zh) | 对象存储方法、网关、设备及介质 | |
CN109960554A (zh) | 展示阅读内容的方法、设备和计算机存储介质 | |
CN110990406B (zh) | 一种模糊查询方法、装置、设备和介质 | |
CN110569218B (zh) | 一种ext文件系统离线修改方法、装置及存储介质 | |
US20150106478A1 (en) | File handlers supporting dynamic data streams | |
US8589454B2 (en) | Computer data file merging based on file metadata | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
JP3731859B2 (ja) | ハンドヘルド装置のデータ記憶およびデータ取出しのための方法および装置 | |
CN106156038B (zh) | 数据存储方法和装置 | |
CN113590550B (zh) | 文件创建方法、装置和电子设备 | |
US9817837B2 (en) | Method and system for file storage and access | |
CN115994122B (zh) | 快速缓存信息的方法、系统、设备及储存介质 | |
US20200349186A1 (en) | Method, apparatus and computer program product for managing metadata of storage object | |
CN112395437A (zh) | 一种3d模型的加载方法、装置、电子设备及存储介质 | |
US20230409235A1 (en) | File system improvements for zoned storage device operations | |
CN107729347B (zh) | 同义标签的获取方法、装置、设备及计算机可读存储介质 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |