CN110928498B - 一种目录遍历的方法、装置、设备和存储介质 - Google Patents
一种目录遍历的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110928498B CN110928498B CN201911122295.9A CN201911122295A CN110928498B CN 110928498 B CN110928498 B CN 110928498B CN 201911122295 A CN201911122295 A CN 201911122295A CN 110928498 B CN110928498 B CN 110928498B
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- files
- attribute information
- traversal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004891 communication Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000004904 shortening Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种目录遍历的方法、装置、设备和存储介质。该目录遍历的方法包括:针对选定的目录,创建文件搜索列表;遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照索引编号(inodeid)的顺序存储所述属性信息,所述属性信息包括文件名称、inodeid和/或文件路径;根据所述文件搜索列表顺序获取对应的元数据信息。通过上述方式,本发明能够实现批量读取目录下文件,然后按照inodeid的顺序对目录中的文件进行排序,再调用stat函数顺序获取文件的元数据信息,有效减少io次数和cpu负载,达到有效减少随机io,缩短遍历目录时间,提升获取元数据信息性能的目的。
Description
技术领域
本申请涉及目录遍历领域,特别是涉及一种目录遍历的方法、装置、设备和存储介质。
背景技术
目前分布式存储系统中扫描磁盘数据块文件,通过文件接口或者操作系统提供的接口读取目录下一个文件名,然后判断文件类型,比如软连接,文件,目录等,如果是目录则跟踪目录,继续进行扫描操作;如果是文件,则直接获取数据块文件对应元数据信息,即存储路径、长度、修改时间等信息;其他文件类型直接忽略,等待所有的目录和子目录中文件都扫描结束,则整个扫描过程结束。
由于主流的文件系统索引节点(inode)元数据都是按照索引编号(inodeid)顺序存储在磁盘中,当磁盘长期使用,并且经常进行删除和重新创建操作,会导致一个目录下面的inodeid并不连续,然而一般目录遍历都是从入口目录开始,使用readdir函数每次读取目录中一个文件或者目录,然后使用stat函数获取文件修改时间和长度信息,如果是目录则继续遍历目录下文件,继续使用stat函数获取目录文件中文件信息。每次使用readdir函数获取一个文件或者目录,一个目录下文件量非常大情况下,大量调用导致cpu负载变高。获取到一个文件名后,直接使用stat函数获取索引节点(inode)元数据信息。相当于每次随机读取一个文件的inode存储的元数据信息,产生大量随机io,导致磁盘io负载很高。最终导致整个目录遍历时间变长。
目前的这种方法存在的问题:1.每次只能获取到一个文件或者目录,每次需要调用操作系统接口,进行一个io操作,并且需要内核态和用户态切换,加重cpu和io负载,拖慢运行速度;2.文件系统中每个目录下的多个数据块文件对应的元数据信息(存储在inode内),即文件长度、创建时间、修改时间等信息,并不是连续存放的,都是依据元数据索引编号(inodeid)顺序存储,特别是长时间运行的磁盘目录下文件,元数据信息存储更加离散,每次扫描到一个目录下的文件直接获取对应的元数据信息,会产生大量的随机io,增加io负载,增加io时延,导致扫描速度变慢。
因此,如何减少目录遍历过程中随机io,降低cpu和io负载,减少遍历时间是人们日益关心的问题。
发明内容
本发明公开了一种目录遍历的方法、装置、设备和存储介质,能够有效减少io次数和cpu负载,达到有效减少随机io,缩短遍历目录时间,提升获取元数据信息性能的目的。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种目录遍历的方法,包括:针对选定的目录,创建文件搜索列表;遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照inodeid的顺序存储所述属性信息,所述属性信息包括文件名称、inodeid和/或文件路径;根据所述文件搜索列表顺序获取对应的元数据信息,所述元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种目录遍历的装置,包括:列表建立模块,用于针对选定的目录,创建文件搜索列表;文件属性信息获取和存储模块,用于遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照inodeid的顺序存储所述属性信息,所述属性信息包括文件名称、inodeid和/或文件路径;元数据信息获取模块,用于根据所述文件搜索列表顺序获取对应的元数据信息,所述元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种目录遍历的设备,包括:通信电路、处理器和存储器;所述通信电路用于与其他设备通信;所述处理器用于运行所述存储器存储的程序指令,以结合所述通信电路来执行上述所述目录遍历的方法。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储介质,包括:存储有处理器可运行的程序指令,所述程序指令用于执行上述所述目录遍历的方法。
本申请的有益效果是:本发明的一种目录遍历的方法、装置、设备和存储介质。该目录遍历的方法包括:针对选定的目录,创建文件搜索列表;遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照inodeid的顺序存储所述属性信息,所述属性信息包括文件名称、inodeid和/或文件路径;根据所述文件搜索列表顺序获取对应的元数据信息。通过上述方式,本发明能够实现批量读取目录下文件,然后按照inodeid的顺序对目录中的文件进行排序,再调用stat函数顺序获取文件的元数据信息,有效减少io次数和cpu负载,达到有效减少随机io,缩短遍历目录时间,提升获取元数据信息性能。
附图说明
图1是本发明第一实施例的目录遍历的方法流程示意图;
图2是本发明第二实施例的目录遍历的方法流程示意图;
图3是本发明实施例的有根目录结构示意图;
图4是本发明实施例的目录遍历的装置结构示意图;
图5是本发明实施例的目录遍历的设备结构示意图;
图6是本发明实施例的存储介质结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的目录遍历的方法流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
在步骤S110中,针对选定的目录,创建文件搜索列表。
具体的,这里选定的目录可以是磁盘中的某个目录,也可以是将整个磁盘当成一个目录,根据选定的目录,创建一个空的文件搜索列表。
在步骤S120中,遍历目录下存储的文件,以获取文件的属性信息,在文件搜索列表中按照inodeid的顺序存储属性信息,属性信息包括文件名称、inodeid和/或文件路径。
进一步的,在遍历目录的过程中,从入口目录开始,逐层进行遍历。
具体的,判断目录的入口目录层中对象的类型。
当对象为文件时,调用getdents函数读取该文件的属性信息,包括:文件名称、inodeid和/或文件路径。并在文件搜索列表中按照inodeid的顺序存储属性信息。进一步的,在遍历的过程中,每遍历到一次目录下存储的文件则按照inodeid的顺序对属性信息进行排列,以更新文件搜索列表。
当对象为子目录时,遍历子目录,返回执行当对象为文件时,获取文件的属性信息,在文件搜索列表中按照inodeid的顺序存储属性信息步骤。
优选的,为了防止切换目录导致产生随机io,采用广度优先遍历方法,在遍历子目录前,先执行遍历完当前入口目录层中的所有文件。
在步骤S130中,根据文件搜索列表顺序获取对应的元数据信息。
具体的,按照文件搜索列表中的inode id的顺序,从上到下遍历该文件搜索列表来获取对应的元数据信息。根据inodeid对应的文件路径索引到文件,根据文件调用stat函数读取对应的元数据信息,元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置等。
举例说明,请参阅图3中的有根目录结构示意图。例如有根目录,下面有dir1和dir2子目录,test1和test2普通文件,有根目录、dir1子目录、dir2子目录、test1和test2普通文件均有对应的元数据信息,且该元数据信息存储在inode中,分别对应inode id1、inode id2、inode id3、inode id4和inode id5。在遍历有根目录过程中,当遍历到的是文件时,如test1和test2,就将test1和test2对应的文件属性信息,按照inode id顺序存储在文件搜索列表中,当遍历到的是子目录时,例如dir1和dir2,优先遍历完当层的文件(这里是要遍历完test1和test2),再遍历dir1和dir2子目录下的内容,与遍历有根目录一样,直到遍历完所有的子目录和文件。优选的,文件搜索列表内的内容是与遍历同步进行更新的,直到结束遍历过程。
本发明第一实施例的目录遍历的方法,通过获取目录下的所有文件的文件名称、inode id和/或文件路径,建立按照inode id顺序存储的文件搜索列表,以inodeid为索引对文件路径进行排序,顺序遍历文件搜索列表获取元数据信息,通过上述方式,本发明能够将目录下的对象进行分类,针对遍历对象为目录和文件的不同处理方法,对文件的信息进行处理,同时运用并行处理方法(广度优先)代替常规的串行处理方式,来提高查找的时间效率。本方法在该方法运用简单的处理命令,来实现对常规目录遍历方式的整改,提供一种较为灵活的方法以达到进一步有效减少了随机io,降低了cpu负载,缩短了遍历时间,提升获取元数据信息性能的目的。
图2是本发明第二实施例的目录遍历的方法流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。本发明的第二实施例是在第一实施例的基础上,在遍历目录下的文件时,通过建立一个虚拟的遍历清单,来指示遍历过程,以防遍历过程中文件的重复遍历和遗漏遍历。如图2所示,该方法包括步骤:
在步骤S210中,获取目录下的所有对象,根据对象的名称建立遍历清单。
具体的,对于选定的目录,建立一个虚拟的遍历清单,录入目录下的所有内容(子目录和文件)。这里的遍历清单录入的是目录下的所有内容,包括目录下的子目录和文件,以及子目录下的又一子目录和文件,层层下来直到目录下的所有内容均被录入。
在步骤S220中,针对选定的目录,创建文件搜索列表。具体内容请参阅实施例一中的步骤S110,这里不再赘述。
在步骤S230中,按照遍历清单遍历目录下存储的文件,以获取文件的属性信息,属性信息包括文件名称、inode id和/或文件路径,并在遍历清单上将已经遍历的对象标记为遍历完成状态。
具体的,遍历目录下存储的文件的主要内容的参见实施例一中的步骤S120。需要说明的是在该遍历的过程中,增加了按照遍历清单上录入的内容来遍历这一操作,当文件被遍历过(文件的属性信息被获取),就在遍历清单上对该文件进行标记,以表明该文件遍历完成。
在步骤S240中,在文件搜索列表中按照inode id的顺序存储属性信息。具体的参见实施例一中的步骤S120中相关的内容,这里不再赘述。
在步骤S250中,判断遍历清单中是否所有对象均被标记为遍历完成状态;当遍历清单中所有对象均被标记为遍历完成状态时,结束遍历。
具体的,在步骤S230中,遍历目录下文件的过程中,按照遍历清单上录入的内容来遍历,遍历清单上的所有对象均被标记,则说明该目录下的所有文件均被遍历,结束该目录的遍历。
在步骤S260中,根据文件搜索列表顺序获取对应的元数据信息。具体内容请参阅参见实施例一中的步骤S130,这里不再赘述。
对于本发明的第二实施例以遍历指定目录进行具体举例说明。
首先,从指定目录入口开始,使用getdents函数每次读取指定目录列表存储的缓冲区(buffer)数据,buffer中保存该目录中一批对象(文件或目录)信息,对象信息包括对象名称、对应的inodeid、对象类型(目录或者文件)。
然后,添加buffer内的所有对象(目录和文件)建立遍历清单,每次从遍历清单中读取一个对象,当读取到遍历清单内的对象的是文件时,则添加到文件搜索列表(以inodeid进行排序的队列)中,并以inode id的顺序重新排列以更新文件搜索列表。同时对此文件进行标记,表明此文件已被遍历。当读取到遍历清单内的对象是子目录(此子目录是相对于指定目录而言),则暂时不对子目录进行遍历,先对同一层下的文件进行遍历,直到该层所有文件全被标记遍历完成状态,再对该子目录进行遍历,子目录遍历的过程与上述指定目录遍历过程一样,这里不再赘述。当子目录下的所有对象均完成遍历,则该子目录被标记遍历完成状态。只有当遍历清单上的所有对象均被标记遍历完成,则针对该指定目录会得到一个最后更新完毕的对应的文件搜索列表,该文件搜索列表中包括指定目录下的所有文件的属性信息(文件名称、对应的inode id和/或文件路径),并且所有的文件均是按照对应的inodeid的顺序进行排序。
最后,只需一次性调用state函数,并按照文件搜索列表的顺序遍历文件,根据文件属性信息,以获取文件对应的元数据信息,元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置等。本发明第二实施例的目录遍历的方法,在实施例一的基础上,通过建立一个虚拟的遍历清单录入目录下的对象,按照该遍历清单来遍历目录下的文件,建立文件搜索列表,获取元数据信息。通过上述方式,除了实施例一中能够产生的效果,本发明还能够避免遍历目录下的文件过程中的文件重复遍历和文件遗漏遍历,进而保证遍历的准确性。
请参阅图4,图4展示了本发明实施例的目录遍历的装置结构示意图。如图4所示,该装置30包括:
列表建立模块31,用于针对选定的目录,创建文件搜索列表。
文件属性信息获取和存储模块32,用于遍历目录下存储的文件,以获取文件的属性信息,在文件搜索列表中按照inodeid的顺序存储属性信息,属性信息包括文件名称、inodeid和/或文件路径。
具体的,文件属性信息获取和存储模块32,在获取文件属性信息的过程中,从入口目录开始,逐层进行获取。且首先对目录的入口目录层中对象的类型进行判断,当对象为文件时,调用getdents函数读取该文件的属性信息,包括:文件名称、inodeid和/或文件路径。并在文件搜索列表中按照inodeid的顺序存储属性信息。优选的,在遍历的过程中,每遍历到一次目录下存储的文件则按照inodeid的顺序对属性信息进行排列,以更新文件搜索列表。当对象为子目录时,遍历子目录,返回执行当对象为文件时,获取文件的属性信息,在文件搜索列表中按照inodeid的顺序存储属性信息步骤。优选的,在遍历子目录前,先执行遍历完当前入口目录层中的所有文件。
元数据信息获取模块33,用于根据文件搜索列表顺序获取对应的元数据信息。
具体的,元数据信息获取模块33,按照文件搜索列表中的inode id的顺序,从上到下遍历该文件搜索列表来获取对应的元数据信息。根据inodeid对应的文件路径索引到文件,根据文件调用stat函数读取对应的元数据信息,元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置等。
请参阅图5,图5展示了本发明实施例的目录遍历的设备结构示意图。如图5所示,该设备40包括处理器41、与处理器41耦接的存储器42和通信电路43。
通信电路43用于与其他设备通信,例如与分布式存储系统中的元数据管理服务器通信连接,根据控制指令将获得的元数据信息上传到元数据管理服务器中。
处理器用于运行存储器42存储的程序指令,以结合通信电路43来执行上述目录遍历的方法。
其中,处理器41还可以称为CPU(Central Processing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参阅图6,图6展示了本发明实施例的存储介质结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序指令51,其中,该程序指令51可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (9)
1.一种目录遍历的方法,其特征在于,所述目录遍历的方法包括以下步骤:
针对选定的目录,创建文件搜索列表;
遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照索引编号的顺序存储所述属性信息,在所述遍历的过程中,每遍历一次所述目录下存储的文件则按照索引编号的顺序对所述属性信息进行排列,以更新所述文件搜索列表,所述属性信息包括文件名称、索引编号和/或文件路径;
根据所述文件搜索列表顺序获取文件对应的元数据信息,所述元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置。
2.根据权利要求1所述的目录遍历的方法,其特征在于,所述遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照索引编号的顺序存储所述属性信息,包括:
判断所述目录的入口目录层中对象的类型;
当所述对象为文件时,获取所述文件的属性信息,在所述文件搜索列表中按照索引编号的顺序存储所述属性信息;
当所述对象为子目录时,在遍历完所述目录层中的所有文件对象后遍历所述子目录,返回执行所述当所述对象为文件时,获取所述文件的属性信息,在所述文件搜索列表中按照索引编号的顺序存储所述属性信息步骤。
3.根据权利要求1-2任一所述的目录遍历的方法,其特征在于,
所述创建文件搜索列表之前包括:
获取所述目录下的所有对象,根据对象的名称建立遍历清单;
所述遍历所述目录下存储的文件,以获取所述文件的属性信息包括:
按照所述遍历清单遍历所述目录下存储的文件,以获取所述文件的属性信息,并在所述遍历清单上将已经遍历的对象标记为遍历完成状态。
4.根据权利要求3所述的目录遍历的方法,其特征在于,所述按照所述遍历清单遍历所述目录下存储的文件,以获取所述文件的属性信息后包括:
判断所述遍历清单中是否所有对象均被标记为遍历完成状态;
当所述遍历清单中所有对象均被标记为遍历完成状态时,结束遍历。
5.根据权利要求1所述的目录遍历的方法,其特征在于,所述根据所述文件搜索列表顺序获取对应的元数据信息包括:
按照所述文件搜索列表中的索引编号的顺序,根据索引编号对应的文件路径索引到文件,根据所述文件调用stat函数读取对应的元数据信息。
6.根据权利要求1所述的目录遍历的方法,其特征在于,所述遍历所述目录下存储的文件,以获取所述文件的属性信息包括调用getdents函数读取所述文件的属性信息。
7.一种目录遍历装置,其特征在于,所述目录遍历装置包括:
列表建立模块,用于针对选定的目录,创建文件搜索列表;
文件属性信息获取和存储模块,用于遍历所述目录下存储的文件,以获取所述文件的属性信息,在所述文件搜索列表中按照索引编号的顺序存储所述属性信息,在所述遍历的过程中,每遍历一次所述目录下存储的文件则按照索引编号的顺序对所述属性信息进行排列,以更新所述文件搜索列表,所述属性信息包括文件名称、索引编号和文件路径;
元数据信息获取模块,用于根据所述文件搜索列表顺序获取对应的元数据信息,所述元数据信息包括文件长度、创建时间、修改时间、文件权限和与文件对应的文件块的存储位置。
8.一种目录遍历设备,其特征在于,所述设备包括通信电路、处理器和存储器;
所述通信电路用于与其他设备通信;
所述处理器用于运行所述存储器存储的程序指令,以结合所述通信电路来执行权利要求1至6任一项所述的方法。
9.一种存储介质,其特征在于,存储有处理器可运行的程序指令,所述程序指令用于执行权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122295.9A CN110928498B (zh) | 2019-11-15 | 2019-11-15 | 一种目录遍历的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122295.9A CN110928498B (zh) | 2019-11-15 | 2019-11-15 | 一种目录遍历的方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928498A CN110928498A (zh) | 2020-03-27 |
CN110928498B true CN110928498B (zh) | 2023-11-10 |
Family
ID=69853143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911122295.9A Active CN110928498B (zh) | 2019-11-15 | 2019-11-15 | 一种目录遍历的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928498B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737204B (zh) * | 2020-06-12 | 2024-03-19 | 北京百度网讯科技有限公司 | 文件目录遍历方法、装置、设备和介质 |
CN112464255A (zh) * | 2020-10-21 | 2021-03-09 | 北京锐安科技有限公司 | 一种数据处理方法、装置、存储介质及电子设备 |
CN112328550A (zh) * | 2020-11-03 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 一种分布式文件系统架构下的文件管理方法及装置 |
CN112347046B (zh) * | 2021-01-08 | 2021-04-30 | 北京东方通软件有限公司 | 一种获取分布式系统中文件的创建时间的方法 |
CN113468123B (zh) * | 2021-06-30 | 2024-02-20 | 深圳软牛科技有限公司 | 文件夹去重恢复方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1845461A1 (en) * | 2006-04-14 | 2007-10-17 | Mirapoint, Inc. | Fast file attribute search |
CN103870588A (zh) * | 2014-03-27 | 2014-06-18 | 杭州朗和科技有限公司 | 一种在数据库中使用的方法及装置 |
CN104243425A (zh) * | 2013-06-19 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 一种在内容分发网络中进行内容管理的方法、装置及系统 |
CN105045528A (zh) * | 2015-06-24 | 2015-11-11 | 武汉烽火众智数字技术有限责任公司 | 一种快速的fat32磁盘分区遍历及文件查找方法 |
CN106021466A (zh) * | 2016-05-17 | 2016-10-12 | 浙江大华技术股份有限公司 | 一种存储数据的方法及装置 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092976B2 (en) * | 2003-06-24 | 2006-08-15 | International Business Machines Corporation | Parallel high speed backup for a storage area network (SAN) file system |
US8341130B2 (en) * | 2009-08-12 | 2012-12-25 | International Business Machines Corporation | Scalable file management for a shared file system |
US9165015B2 (en) * | 2010-07-29 | 2015-10-20 | International Business Machines Corporation | Scalable and user friendly file virtualization for hierarchical storage |
US11416444B2 (en) * | 2014-03-18 | 2022-08-16 | Netapp, Inc. | Object-based storage replication and recovery |
CN104199894A (zh) * | 2014-08-25 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 一种文件扫描方法及装置 |
US20160063021A1 (en) * | 2014-08-28 | 2016-03-03 | Futurewei Technologies, Inc. | Metadata Index Search in a File System |
US9954946B2 (en) * | 2015-11-24 | 2018-04-24 | Netapp, Inc. | Directory level incremental replication |
-
2019
- 2019-11-15 CN CN201911122295.9A patent/CN110928498B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1845461A1 (en) * | 2006-04-14 | 2007-10-17 | Mirapoint, Inc. | Fast file attribute search |
CN104243425A (zh) * | 2013-06-19 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 一种在内容分发网络中进行内容管理的方法、装置及系统 |
WO2014201942A1 (en) * | 2013-06-19 | 2014-12-24 | Tencent Technology (Shenzhen) Company Limited | Method, server and system for managing content in content delivery network |
CN103870588A (zh) * | 2014-03-27 | 2014-06-18 | 杭州朗和科技有限公司 | 一种在数据库中使用的方法及装置 |
CN105045528A (zh) * | 2015-06-24 | 2015-11-11 | 武汉烽火众智数字技术有限责任公司 | 一种快速的fat32磁盘分区遍历及文件查找方法 |
CN106021466A (zh) * | 2016-05-17 | 2016-10-12 | 浙江大华技术股份有限公司 | 一种存储数据的方法及装置 |
CN109933570A (zh) * | 2019-03-15 | 2019-06-25 | 中山大学 | 一种元数据管理方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110928498A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928498B (zh) | 一种目录遍历的方法、装置、设备和存储介质 | |
US9792340B2 (en) | Identifying data items | |
CN104714755B (zh) | 一种快照管理方法及装置 | |
CN110019004B (zh) | 一种数据处理方法、装置及系统 | |
EP3125501B1 (en) | File synchronization method, server, and terminal | |
CN107463692B (zh) | 超大文本数据同步到搜索引擎的方法和系统 | |
CN109101599B (zh) | 一种增量索引更新方法及系统 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN109241003B (zh) | 文件管理方法和装置 | |
JP2014063217A (ja) | バックアップ制御プログラム、バックアップ制御方法および情報処理装置 | |
CN114281779A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
JP2017522638A (ja) | マルチメディア表示方法、装置及びデバイス | |
CN110807028B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111159130A (zh) | 一种小文件合并方法及电子设备 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN112306957A (zh) | 获取索引节点号的方法、装置、计算设备和存储介质 | |
US20210240666A1 (en) | Displaying an alert and options when deleting a file that is associated with a sequence of files | |
CN111552438B (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
CN110109866B (zh) | 一种文件系统目录的管理方法及设备 | |
CN114416676A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN115563071A (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
CN110245122B (zh) | 一种数据处理的方法和kv存储系统 | |
CN115129789A (zh) | 一种分布式对象存储系统的桶索引存储方法、装置及介质 | |
CN112948593A (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 |