CN111858495B - 文件信息获取方法、装置、存储介质及电子设备 - Google Patents
文件信息获取方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111858495B CN111858495B CN202010718478.3A CN202010718478A CN111858495B CN 111858495 B CN111858495 B CN 111858495B CN 202010718478 A CN202010718478 A CN 202010718478A CN 111858495 B CN111858495 B CN 111858495B
- Authority
- CN
- China
- Prior art keywords
- attribute
- data
- file
- acquiring
- node
- 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 52
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 21
- 230000000694 effects Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007246 mechanism 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
- 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
-
- 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/172—Caching, prefetching or hoarding of 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种文件信息获取方法、装置、存储介质及电子设备,该文件信息获取方法包括获取目标文件的编号;获取与编号对应的第一文件***日志,第一文件***日志包含节点属性;根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。通过本申请实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件信息获取方法、装置、存储介质及电子设备。
背景技术
目前操作***常用的磁盘卷格式为NTFS(New Technology File System)文件***格式,当卷采用NTFS格式时,卷可以以簇为单位进行数据存储,且一个数据可以占用一个或多个簇,其中簇是NTFS格式中使用的最小磁盘单元,簇的大小是扇区的大小的整数倍,且簇的大小在被格式化时固定,扇区是磁盘读写的基本单位。NTFS使用逻辑簇号(LogicalCluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来对簇进行定位。LCN是对整个卷中所有的簇从头到尾所进行的简单编号。用卷因子乘以LCN,NTFS就能够得到卷上的物理字节偏移量,从而得到物理磁盘地址。VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。VCN可以映射成LCN,而不必要求在物理上连续。
相关技术中,当需要获取一个文件的信息(例如数据量或者存储路径)时,通常是调用操作***提供的应用程序编程接口,通过调用提供该应用程序编程接口的应用程序的后台服务从整个操作***的存储空间中获取文件的信息。
这种方式下,获取效率较低,获取效果不佳,从而可能影响其他衍生产品的应用功能。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的目的在于提出一种文件信息获取方法、装置、存储介质及电子设备,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为达到上述目的,本申请第一方面实施例提出的文件信息获取方法,包括:获取目标文件的编号;获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径。
在本申请的一个实施例中,所述根据所述节点属性,获取目标文件的数据量,包括:
判断所述节点属性中的文件名属性或者第一数据属性是否包含所述数据量;
若所述文件名属性或者所述第一数据属性包含所述数据量,则直接读取所述数据量。
在本申请的一个实施例中,还包括:
若所述文件名属性和所述第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别;
获取与所述属性类别对应的第二数据属性;
从所述第二数据属性内读取所述数据量。
在本申请的一个实施例中,所述属性类别为非常驻属性或者常驻属性,所述获取与所述属性类别对应的第二数据属性,包括:
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性。
在本申请的一个实施例中,根据所述节点属性,生成所述目标文件的存储路径,包括:
根据所述节点属性中的文件名属性,确定所述目标文件所存储节点的父节点的文件夹名称;
逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称;
根据各层所述文件夹名称生成所述存储路径。
本申请第一方面实施例提出的文件信息获取方法,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为达到上述目的,本申请第二方面实施例提出的文件信息获取装置,包括:第一获取模块,用于获取目标文件的编号;第二获取模块,用于获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;第三获取模块,用于根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径。
在本申请的一个实施例中,所述第三获取模块,包括:
判断子模块,用于判断所述节点属性中的文件名属性或者第一数据属性是否包含所述数据量;
读取子模块,用于在所述文件名属性或者所述第一数据属性包含所述数据量时,直接读取所述数据量。
在本申请的一个实施例中,还包括:
第一确定子模块,用于在所述文件名属性和所述第一数据属性均不包含所述数据量时,获取所述节点属性中的列表属性的属性类别;
获取子模块,用于获取与所述属性类别对应的第二数据属性,并从所述第二数据属性内读取所述数据量。
在本申请的一个实施例中,所述属性类别为非常驻属性或者常驻属性,所述获取子模块,具体用于:
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性。
在本申请的一个实施例中,所述第三获取模块,包括:
第二确定子模块,用于根据所述节点属性中的文件名属性,确定所述目标文件所存储节点的父节点的文件夹名称,逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称;
生成子模块,用于根据各层所述文件夹名称生成所述存储路径。
本申请第二方面实施例提出的文件信息获取装置,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为达到上述目的,本申请第三方面实施例提出的电子设备,包括:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:获取目标文件的编号;获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径。
本申请第三方面实施例提出的电子设备,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为达到上述目的,本申请第四方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器被执行时,使得电子设备能够执行一种文件信息获取方法,所述方法包括:获取目标文件的编号;获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径。
本申请第四方面实施例提出的非临时性计算机可读存储介质,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为达到上述目的,本申请第五方面实施例提出的计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行一种文件信息获取方法,所述方法包括:获取目标文件的编号;获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径。
本申请第五方面实施例提出的计算机程序产品,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的文件信息获取方法的流程示意图;
图2为本申请实施例中NTFS存储结构示意图;
图3是本申请另一实施例提出的文件信息获取方法的流程示意图;
图4是本申请另一实施例提出的文件信息获取方法的流程示意图;
图5是本申请一实施例提出的文件信息获取装置的结构示意图;
图6是本申请另一实施例提出的文件信息获取装置的结构示意图;
图7是本申请实施例的一个电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一实施例提出的文件信息获取方法的流程示意图。
为了解决相关技术中文件信息获取效率较低,获取效果不佳,从而可能影响其他衍生产品的应用功能的技术问题,本申请提供一种文件信息获取方法,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
本实施例以文件信息获取方法被配置为文件信息获取装置中来举例说明。
本实施例中文件信息获取方法可以被配置在文件信息获取装置中,文件信息获取装置可以设置在服务器中,或者也可以设置在计算机设备中,本申请实施例对此不作限制。
本实施例以文件信息获取方法被配置在计算机设备中为例。
需要说明的是,本申请实施例的执行主体,在硬件上可以例如为服务器或者计算机设备中的中央处理器(Central Processing Unit,CPU),在软件上可以例如为服务器或者计算机设备中的相关的后台服务,对此不作限制。
参见图1,该文件信息获取方法包括:
S101:获取目标文件的编号。
其中,当前待查信息的文件,可以被称为目标文件。
通常是采用NTFS(New Technology File System)文件***格式预先将目标文件存储在操作***的磁盘中,由此,目标文件会具有对应的NTFS存储结构,参见图2,图2为本申请实施例中NTFS存储结构示意图,图2描述了操作***的根盘符下面有一个文件a.file,一个文件夹bdir,其中文件夹bdir下面有两个文件c.txt和d.exe,各个文件具有相应的编号,该编号例如FileReferenceNumber和ParentFileReferenceNumber,也即是说,编号包括描述了一个文件在NTFS存储结构内本身的编号和父节点文件夹的编号,能够用于唯一描述该文件在NTFS存储结构内的存储架构情况,上述的ParentFileReferenceNumber可以理解为:DirectoryFileReferenceNumber(直系的父节点文件夹的编号)。
由此,本申请中获取的目标文件的编号,也即是能够用于描述该文件在NTFS存储结构内的存储架构情况的FileReferenceNumber和ParentFileReferenceNumber。
例如,该目标文件的FileReferenceNumber和ParentFileReferenceNumber,可以是由计算机设备自动解析文件信息查询需求,从而识别得到的,或者,也可以是查询用户经由人机交互界面输入至计算机设备,由计算机设备接收得到的,或者,也可以是由计算机设备从第三方硬件设备读取得到的,对此不做限制。
当获取到目标文件的编号后,触发执行后续基于该编号获取目标文件的数据量,和/或生成目标文件的存储路径的步骤。
S102:获取与编号对应的第一文件***日志,第一文件***日志包含节点属性。
其中,操作***中负责管理和存储文件信息的软件机构称为文件管理***,简称文件***。从***角度来看,文件***是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的***。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
而文件***日志正是辅助文件***的运转,记录文件***建立文件,存入、读出、修改、转储文件,控制文件的存取的日志。
本申请实施例中的文件***日志具体为NTFS文件***日志(NTFS_FILE_RECORD)。
在具体执行的过程中,当由计算机设备自动解析文件信息查询需求,从而识别得到的目标文件的编号后,可以根据该编号获取相应的文件***日志,该次获取到的文件***日志可以被称为第一文件***日志。
举例而言,根据给定的目标文件的编号FileReferenceNumber,可以通过调用APIDeviceIoControl读取NTFS_FILE_RECORD(第一文件***日志),该第一文件***日志中包含了节点属性,其中,节点属性是一个流结构,可以包含各种各样的属性。
可选地,节点属性的数量为多个,多个节点属性包括:文件名属性、第一数据属性,以及列表属性,各个节点属性用于表征所属文件的特征,也即是说,表征所属文件在第一文件***日志中的存储特征。
举例而言,AttributeAttributeList(列表属性),当一个文件要求多个MFT(即主文件表(Master File Table))文件记录时会有该节点属性,当文件具有该列表属性时,相应的会对应一个属性列表,该属性列表中包括构成该文件的这些节点属性,以及每个节点属性所在的MFT文件记录的文件引用。
AttributeFileName(文件名属性),文件名属性可以有多个,长文件名自动被转换为相应的短文件名(该短文件名能够便于MS-DOS和16位程序访问),或者当该文件存在硬链接时,会携带该节点属性。
上述的第一数据属性即通常的数据属性(AttributeData),此处标识出第一数据属性,是为了与下文中另外一个数据属性进行区分表述,而并不被作为特定的限制。
数据属性(AttributeData),一个文件仅有一个未命名的数据属性,但可有额外多个命名的数据属性,即一个文件可以有多个数据流,目录没有默认的数据属性,但可有多个可选的命名的数据属性。
S103:根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。
由于获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,可以理解为从操作***整体的NTFS文件***日志中获取了与目标文件的编号对应的部分的第一文件***日志,由此实现缩小了搜索空间,从而提升了获取效率。
当执行根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径时,可以是遍历各个节点属性,从中读取出相应的数据量,或者根据文件名属性,确定该目标文件存储结构的上一级父节点的文件夹名称,逐层回溯从而得到存储路径,或者,也可以采用其他任意可能的方式去根据节点属性,获取目标文件的数据量和/或存储路径,对此不做限制。
本实施例中,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
图3是本申请另一实施例提出的文件信息获取方法的流程示意图。
本实施例应用在获取目标文件的数据量的场景中。
参见图3,该文件信息获取方法包括:
S301:判断节点属性中的文件名属性或者第一数据属性是否包含数据量。
S302:若文件名属性或者第一数据属性包含数据量,则直接读取数据量。
通常文件名属性或者第一数据属性可能直接携带了数据量,则本实施例中,可以首先去判断文件名属性或者第一数据属性是否包含数据量,避免了遍历整个文件***日志内节点属性的步骤,从而使得目标文件信息的获取更具有针对性,提升了获取命中率。
S303:若文件名属性和第一数据属性均不包含数据量,则获取节点属性中的列表属性的属性类别。
也即是说获取列表属性(AttributeAttributeList)的属性类别,该属性类别可以为非常驻属性或者为常驻属性。
S304:获取与属性类别对应的第二数据属性。
一些实施例中,若属性类别为非常驻属性,则确定列表属性指示的存储地址;获取与存储地址所指示磁盘对应的第二文件***日志,第二文件***日志的第二数据属性中包含数据量;从第二文件***日志中获取第二数据属性;若属性类别为常驻属性,则直接从列表属性对应的属性列表中获取第二数据属性。
S305:从第二数据属性内读取数据量。
通常根据非常驻属性的特性,当列表属性的属性类别为非常驻属性时,则可以将该列表属性视为一个指针,确定列表属性指示的存储地址,从而获取与存储地址所指示磁盘对应的文件***日志,该文件***日志可以被称为第二文件***日志,而后从第二文件***日志中获取相应的数据属性(AttributeData),该重新获取的数据属性(AttributeData),可以被称为第二数据属性,此处标识出第二数据属性,是为了与上文中另外一个数据属性进行区分表述,而并不被作为特定的限制,从而辅助直接从第二数据属性内读取数据量,而当属性类别为常驻属性时,则直接从列表属性对应的属性列表中获取第二数据属性。
举例而言,非常驻属性的程序代码定义可以如下:
举例而言,常驻属性的程序代码定义可以如下:
举例而言,针对常驻属性的列表属性对应的属性列表示例:
ATTRIBUTE Attribute;//属性
ULONGLONG LowVcn;//低位虚拟簇号
ULONGLONG HighVcn;//高位虚拟簇号
USHORT RunArrayOffset;//运行数组偏移量
UCHAR CompressionUnit;//压缩单元
UCHAR AlignmentOrReserved[5];//对齐或保留
ULONGLONG AllocatedSize;//分配的大小
ULONGLONG DataSize;//数据量
ULONGLONG InitializedSize;//初始数据量
ULONGLONG CompressedSize;//压缩数据量。
从而可以直接从中获取第二数据属性,并读取其对应的数据量DataSize。
本实施例的程序代码可以示例如下:
针对上述程序代码的说明如下:
加载与目标文件的编号FileReferenceNumber对应的第一文件***日志NtfsFileRecord,从第一文件***日志NtfsFileRecord的属性列表里面查找FileName文件名属性,如果其包含目标文件的数据量,则返回结果,若不包含则从属性列表里面查找DataAttribute第一数据属性,如果其包含目标文件的数据量,则返回结果,若不包含,则从属性列表里面查找AttributeListAttribute列表属性,并判断列表属性的属性类别,如果是非常驻属性,则重新加载对应的磁盘结构内的第二文件***日志NtfsFileRecord,并从第二文件***日志NtfsFileRecord找DataAttribute第二数据属性,如果是常驻属性,则直接从属性列表找DataAttribute第二数据属性,从而根据第二数据属性获取目标文件的数据量。
本实施例中,通过判断文件名属性或者第一数据属性是否包含数据量,当文件名属性或者第一数据属性包含数据量时,直接读取数据量,当文件名属性和第一数据属性均不包含数据量时,则获取列表属性的属性类别,获取与属性类别对应的第二数据属性,以及从第二数据属性内读取数据量,从而使得目标文件信息的获取更具有针对性,提升了获取命中率,从而提升了获取效果。
图4是本申请另一实施例提出的文件信息获取方法的流程示意图。
本实施例应用在获取目标文件的存储路径的场景中。
参见图4,该文件信息获取方法包括:
S401:获取目标文件的编号。
其中,当前待查信息的文件,可以被称为目标文件。
通常是采用NTFS(New Technology File System)文件***格式预先将目标文件存储在操作***的磁盘中,由此,目标文件会具有对应的NTFS存储结构,参见图2,图2为本申请实施例中NTFS存储结构示意图,图2描述了操作***的根盘符下面有一个文件a.file,一个文件夹bdir,其中文件夹bdir下面有两个文件c.txt和d.exe,各个文件具有相应的编号,该编号例如FileReferenceNumber和ParentFileReferenceNumber,也即是说,编号包括描述了一个文件在NTFS存储结构内本身的编号和父节点文件夹的编号,能够用于唯一描述该文件在NTFS存储结构内的存储架构情况,上述的ParentFileReferenceNumber可以理解为:DirectoryFileReferenceNumber(直系的父节点文件夹的编号)。
由此,本申请中获取的目标文件的编号,也即是能够用于描述该文件在NTFS存储结构内的存储架构情况的FileReferenceNumber和ParentFileReferenceNumber。
例如,该目标文件的FileReferenceNumber和ParentFileReferenceNumber,可以是由计算机设备自动解析文件信息查询需求,从而识别得到的,或者,也可以是查询用户经由人机交互界面输入至计算机设备,由计算机设备接收得到的,或者,也可以是由计算机设备从第三方硬件设备读取得到的,对此不做限制。
当获取到目标文件的编号后,触发执行后续基于该编号获取目标文件的数据量,和/或生成目标文件的存储路径的步骤。
S402:获取与编号对应的第一文件***日志,第一文件***日志包含节点属性。
在具体执行的过程中,当由计算机设备自动解析文件信息查询需求,从而识别得到的目标文件的编号后,可以根据该编号获取相应的文件***日志,该次获取到的文件***日志可以被称为第一文件***日志。
举例而言,根据给定的目标文件的编号FileReferenceNumber,可以通过调用APIDeviceIoControl读取FSCTL_GET_NTFS_FILE_RECORD,并将该FSCTL_GET_NTFS_FILE_RECORD作为第一文件***日志,该第一文件***日志中包含了文件名属性。
程序代码示例:
FILE_RECORD=DeviceIoControl(FileReferenceNumberFSCTL_GET_NTFS_FILE_RECORD)。
S403:根据节点属性中的文件名属性,确定目标文件所存储节点的父节点的文件夹名称,逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称。
S404:根据各层文件夹名称生成存储路径。
程序代码示例如下:
/>
针对上述程序代码的说明如下:
1、给定目标文件对应的编号FileReferenceNumber,通过APIDeviceIoControl得到对应的第一文件***日志FSCTL_GET_NTFS_FILE_RECORD。
FILE_RECORD=DeviceIoControl(FileReferenceNumber,FSCTL_GET_NTFS_FILE_RECORD)。
2、遍历当前FILE_RECORD对应的AttributeType,找到AttributeFileName文件名属性,而后,逐层回溯递归父级文件夹,DirectoryFileReferenceNumber,从而得到完整的文件路径。
上述逐层回溯递归父级文件夹,可以采用一个递归回溯函数实现,对此不做限制。
本实施例中,通过获取目标文件的编号,获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,并根据文件名属性,确定目标文件所存储节点的父节点的文件夹名称,逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称,以及根据各层文件夹名称生成存储路径,由此实现快速地生成文件的存储路径,扩展了文件信息获取的应用场景,从而有效地辅助其他衍生产品的应用功能。
图5是本申请一实施例提出的文件信息获取装置的结构示意图。
参见图5,该装置500包括:
第一获取模块501,用于获取目标文件的编号;
第二获取模块502,用于获取与编号对应的第一文件***日志,第一文件***日志包含节点属性;
第三获取模块503,用于根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。
可选地,一些实施例中,参见图6,第三获取模块503,包括:
判断子模块5031,用于判断节点属性中的文件名属性或者第一数据属性是否包含数据量;
读取子模块5032,用于在文件名属性或者第一数据属性包含数据量时,直接读取数据量。
可选地,一些实施例中,参见图6,第三获取模块503,还包括:
第一确定子模块5033,用于在文件名属性和第一数据属性均不包含数据量时,获取节点属性中的列表属性的属性类别;
获取子模块5034,用于获取与属性类别对应的第二数据属性,并从第二数据属性内读取数据量。
可选地,一些实施例中,属性类别为非常驻属性或者常驻属性,获取子模块5034,具体用于:
若属性类别为非常驻属性,则确定列表属性指示的存储地址;
获取与存储地址所指示磁盘对应的第二文件***日志,第二文件***日志的第二数据属性中包含数据量;
从第二文件***日志中获取第二数据属性;
若属性类别为常驻属性,则直接从列表属性对应的属性列表中获取第二数据属性。
可选地,一些实施例中,第三获取模块503,包括:
第二确定子模块5035,用于根据节点属性中的文件名属性,确定目标文件所存储节点的父节点的文件夹名称,逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称;
生成子模块5036,用于根据各层文件夹名称生成存储路径。
需要说明的是,前述图1-图4实施例中对文件信息获取方法实施例的解释说明也适用于该实施例的文件信息获取装置500,其实现原理类似,此处不再赘述。
本实施例中,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
本申请实施例还提供了一种电子设备,参见图7,电子设备700可以包括以下一个或多个组件:处理器701,存储器702,电源电路703,多媒体组件704,音频组件705,输入/输出(I/O)的接口706,传感器组件707,以及通信组件708。
电源电路703,用于为电子设备的各个电路或器件供电;存储器702用于存储可执行程序代码;处理器701通过读取存储器702中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
获取目标文件的编号;
获取与编号对应的第一文件***日志,第一文件***日志包含节点属性;
根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。
需要说明的是,前述图1-图4实施例中对文件信息获取方法实施例的解释说明也适用于该实施例的电子设备700,其实现原理类似,此处不再赘述。
本实施例中,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种文件信息获取方法,方法包括:
获取目标文件的编号;
获取与编号对应的第一文件***日志,第一文件***日志包含节点属性;
根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。
本实施例中的非临时性计算机可读存储介质,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
为了实现上述实施例,本申请还提出一种计算机程序产品,当计算机程序产品中的指令被处理器执行时,执行一种文件信息获取方法,方法包括:
获取目标文件的编号;
获取与编号对应的第一文件***日志,第一文件***日志包含节点属性;
根据节点属性,获取目标文件的数据量,和/或生成目标文件的存储路径。
本实施例中的计算机程序产品,通过获取目标文件的编号,并获取与编号对应的第一文件***日志,第一文件***日志包含节点属性,以及根据节点属性,获取目标文件的数据量和/或生成目标文件的存储路径,实现快速地获取文件信息,提升获取效果,有效避免影响其他衍生产品的应用功能。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种文件信息获取方法,其特征在于,所述方法包括:
获取目标文件的编号;
获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;
根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径;
所述方法,还包括:
若所述节点属性中的文件名属性和第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别,所述属性类别为非常驻属性或者常驻属性;
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性,从所述第二数据属性内读取所述数据量;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性,从所述第二数据属性内读取所述数据量。
2.如权利要求1所述的文件信息获取方法,其特征在于,所述根据所述节点属性,获取目标文件的数据量,包括:
判断所述节点属性中的文件名属性或者第一数据属性是否包含所述数据量;
若所述文件名属性或者所述第一数据属性包含所述数据量,则直接读取所述数据量。
3.如权利要求2所述的文件信息获取方法,其特征在于,还包括:
若所述文件名属性和所述第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别;
获取与所述属性类别对应的第二数据属性;
从所述第二数据属性内读取所述数据量。
4.如权利要求1所述的文件信息获取方法,其特征在于,根据所述节点属性,生成所述目标文件的存储路径,包括:
根据所述节点属性中的文件名属性,确定所述目标文件所存储节点的父节点的文件夹名称;
逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称;
根据各层所述文件夹名称生成所述存储路径。
5.一种文件信息获取装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标文件的编号;
第二获取模块,用于获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;
第三获取模块,用于根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径;
所述装置,用于:
若所述节点属性中的文件名属性和第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别,所述属性类别为非常驻属性或者常驻属性;
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性,从所述第二数据属性内读取所述数据量;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性,从所述第二数据属性内读取所述数据量。
6.如权利要求5所述的文件信息获取装置,其特征在于,所述第三获取模块,包括:
判断子模块,用于判断所述节点属性中的文件名属性或者第一数据属性是否包含所述数据量;
读取子模块,用于在所述文件名属性或者所述第一数据属性包含所述数据量时,直接读取所述数据量。
7.如权利要求6所述的文件信息获取装置,其特征在于,还包括:
第一确定子模块,用于在所述文件名属性和所述第一数据属性均不包含所述数据量时,获取所述节点属性中的列表属性的属性类别;
获取子模块,用于获取与所述属性类别对应的第二数据属性,并从所述第二数据属性内读取所述数据量。
8.如权利要求5所述的文件信息获取装置,其特征在于,所述第三获取模块,包括:
第二确定子模块,用于根据所述节点属性中的文件名属性,确定所述目标文件所存储节点的父节点的文件夹名称,逐层回溯至目标节点,得到各层存储结构对应节点的文件夹名称;
生成子模块,用于根据各层所述文件夹名称生成所述存储路径。
9.一种电子设备,其特征在于,包括以下一个或多个组件:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/ O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
获取目标文件的编号;
获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;
根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径;
根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径;
所述根据所述节点属性,获取目标文件的数据量,还包括:
若所述节点属性中的文件名属性和第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别,所述属性类别为非常驻属性或者常驻属性;
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性,从所述第二数据属性内读取所述数据量;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性,从所述第二数据属性内读取所述数据量。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的文件信息获取方法。
11.一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行一种文件信息获取方法,所述方法包括:
获取目标文件的编号;
获取与所述编号对应的第一文件***日志,所述第一文件***日志包含节点属性;
根据所述节点属性,获取目标文件的数据量,和/或生成所述目标文件的存储路径;
所述方法,还包括:
若所述节点属性中的文件名属性和第一数据属性均不包含所述数据量,则获取所述节点属性中的列表属性的属性类别,所述属性类别为非常驻属性或者常驻属性;
若所述属性类别为所述非常驻属性,则确定所述列表属性指示的存储地址;
获取与所述存储地址所指示磁盘对应的第二文件***日志,所述第二文件***日志的第二数据属性中包含所述数据量;
从所述第二文件***日志中获取所述第二数据属性,从所述第二数据属性内读取所述数据量;
若所述属性类别为所述常驻属性,则直接从所述列表属性对应的属性列表中获取所述第二数据属性,从所述第二数据属性内读取所述数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718478.3A CN111858495B (zh) | 2020-07-23 | 2020-07-23 | 文件信息获取方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718478.3A CN111858495B (zh) | 2020-07-23 | 2020-07-23 | 文件信息获取方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858495A CN111858495A (zh) | 2020-10-30 |
CN111858495B true CN111858495B (zh) | 2024-04-05 |
Family
ID=72950478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718478.3A Active CN111858495B (zh) | 2020-07-23 | 2020-07-23 | 文件信息获取方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858495B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398760A (zh) * | 2007-09-27 | 2009-04-01 | 广达电脑股份有限公司 | 固件更新***及其更新方法 |
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及*** |
CN101630322A (zh) * | 2009-08-26 | 2010-01-20 | 中国人民解放军信息工程大学 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
CN104462112A (zh) * | 2013-09-17 | 2015-03-25 | 上海华虹集成电路有限责任公司 | 文件***存储模块 |
CN105579950A (zh) * | 2013-07-02 | 2016-05-11 | 日立数据***工程英国有限公司 | 用于虚拟化文件***的迁移的方法和装置、用于虚拟化文件***的迁移的数据存储***以及用于在数据存储***中使用的文件服务器 |
CN106653066A (zh) * | 2016-10-21 | 2017-05-10 | 广东欧珀移动通信有限公司 | 基于音箱的音乐推送方法及装置 |
CN108021590A (zh) * | 2016-10-28 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种目标对象属性确定方法、属性更新方法及装置 |
CN105279278B (zh) * | 2015-11-13 | 2019-03-12 | 珠海豹趣科技有限公司 | 文件的搜索方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3997428B2 (ja) * | 2003-09-25 | 2007-10-24 | ソニー株式会社 | 記録装置、ファイル管理方法、ファイル管理方法のプログラム及びファイル管理方法のプログラムを記録した記録媒体 |
US8285692B2 (en) * | 2010-01-15 | 2012-10-09 | Oracle America, Inc. | Method and system for attribute encapsulated data resolution and transcoding |
-
2020
- 2020-07-23 CN CN202010718478.3A patent/CN111858495B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398760A (zh) * | 2007-09-27 | 2009-04-01 | 广达电脑股份有限公司 | 固件更新***及其更新方法 |
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及*** |
CN101630322A (zh) * | 2009-08-26 | 2010-01-20 | 中国人民解放军信息工程大学 | 树形目录结构下的文件集在数据库中的存储和访问方法 |
CN105579950A (zh) * | 2013-07-02 | 2016-05-11 | 日立数据***工程英国有限公司 | 用于虚拟化文件***的迁移的方法和装置、用于虚拟化文件***的迁移的数据存储***以及用于在数据存储***中使用的文件服务器 |
CN104462112A (zh) * | 2013-09-17 | 2015-03-25 | 上海华虹集成电路有限责任公司 | 文件***存储模块 |
CN105279278B (zh) * | 2015-11-13 | 2019-03-12 | 珠海豹趣科技有限公司 | 文件的搜索方法及装置 |
CN106653066A (zh) * | 2016-10-21 | 2017-05-10 | 广东欧珀移动通信有限公司 | 基于音箱的音乐推送方法及装置 |
CN108021590A (zh) * | 2016-10-28 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种目标对象属性确定方法、属性更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
NTFS文件***文件存储层次结构解析;田素诚;《福建电脑》;第35卷(第07期);17-20 * |
Also Published As
Publication number | Publication date |
---|---|
CN111858495A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10908925B2 (en) | Dynamic loading method, and target file creation method and apparatus | |
KR100600671B1 (ko) | 네트워크 내의 장치들을 관리하기 위한 방법, 시스템 및프로그램 | |
JP4979934B2 (ja) | 拡張ファイルシステム | |
US8321487B1 (en) | Recovery of directory information | |
US10659520B1 (en) | Virtual disk importation | |
CN110232969A (zh) | 医学影像上传至云服务器的方法、装置、终端和存储介质 | |
US9542111B2 (en) | Writable clone data structure | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
WO2022228500A1 (zh) | 一种bios的数据存储方法、装置、设备及存储介质 | |
CN116483859A (zh) | 数据查询方法及装置 | |
CN114461691A (zh) | 状态机的控制方法、装置、电子设备及存储介质 | |
CN111858495B (zh) | 文件信息获取方法、装置、存储介质及电子设备 | |
CN116150539A (zh) | 页面渲染方法、装置和电子设备 | |
CN113507529B (zh) | 基于Web应用实现文件下载的方法 | |
CN111858494B (zh) | 文件获取方法、装置、存储介质及电子设备 | |
CN112035119B (zh) | 一种数据删除方法及装置 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN113111138A (zh) | 数据处理方法、装置、计算设备以及介质 | |
CN112860628A (zh) | 一种文件***规模管理方法及*** | |
CN114077575A (zh) | 用于内存快照文件的格式转换方法、设备和*** | |
JP2016146022A (ja) | モデルベース開発支援装置、モデルベース開発支援方法、およびモデルベース開発支援プログラム | |
CN113890872B (zh) | 一种数据集合上传方法、装置、电子设备和存储介质 | |
CN115373595B (zh) | 存储***的访问方法、装置、电子设备以及存储介质 | |
WO2024131959A1 (zh) | 虚拟单元启动方法及装置、云计算*** | |
CN112445790B (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 |