CN114327296A - 一种智能的磁盘碎片分析方法、装置及电子设备 - Google Patents

一种智能的磁盘碎片分析方法、装置及电子设备 Download PDF

Info

Publication number
CN114327296A
CN114327296A CN202111675481.2A CN202111675481A CN114327296A CN 114327296 A CN114327296 A CN 114327296A CN 202111675481 A CN202111675481 A CN 202111675481A CN 114327296 A CN114327296 A CN 114327296A
Authority
CN
China
Prior art keywords
disk
file
fragment
partition
information
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.)
Pending
Application number
CN202111675481.2A
Other languages
English (en)
Inventor
方操
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Baohaowan Technology Co Ltd
Original Assignee
Zhuhai Baohaowan Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Baohaowan Technology Co Ltd filed Critical Zhuhai Baohaowan Technology Co Ltd
Priority to CN202111675481.2A priority Critical patent/CN114327296A/zh
Publication of CN114327296A publication Critical patent/CN114327296A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开一种智能的磁盘碎片分析方法、装置及电子设备,涉及计算机软件领域,能解决现有磁盘碎片分析方案,不够智能,获取磁盘碎片信息不够全面准确的问题。所述方法包括:获取磁盘分区信息;根据磁盘分区信息,获得所有分区中每个文件信息;根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数;判断每个文件在磁盘分区中的碎片数是否大于1;若当前文件在磁盘分区中的碎片数大于1,则将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。本发明能为磁盘整理提供依据,避免磁盘碎片过多导致电脑性能下降。

Description

一种智能的磁盘碎片分析方法、装置及电子设备
技术领域
本发明涉及计算机软件领域,尤其涉及一种智能的磁盘碎片分析方法、装置及电子设备。
背景技术
目前,当应用程序所需的物理内存不足时,操作系统一般会在磁盘中产生临时交换文件,用该文件所占用的磁盘空间虚拟成内存。虚拟内存管理程序会对磁盘频繁读写,产生大量的碎片,这是产生磁盘碎片的主要原因。另外当磁盘中间的一个簇(由扇区组成)内容被删除后,新写入一个较小的文件,这样在这个文件两边就会出现一些空间,这时候再写入一个文件,两段空间的任意一部分都不能容纳该文件,这时候就需要将文件分割成两个部分,碎片再次产生了。最常见的就是下载电影之类的大文件,这期间磁盘使用者一般都会处理一下其它事情,而下载下来的电影文件被迫分割成若干个碎片存储于磁盘中。因此下载是产生碎片的一个重要源头。还有就是经常删除、添加文件,这时候如果文件空间不够大,就会产生大量的磁盘碎片。
磁盘碎片将会加长磁盘的寻道时间,影响系统效能;同时过多的磁盘碎片还会占据磁盘的可用空间,导致磁盘空间浪费,磁盘碎片还会影响磁盘的使用寿命,频繁读写磁盘对磁盘本身就是一种伤害,长期频繁对磁盘进行读写,会大大降低磁盘的使用寿命,因此需要定期对磁盘进行碎片整理。
目前磁盘碎片整理方案主要是将文件碎片的内容移动到磁盘的前面进行合并,此过程非常的耗时,往往需要几个小时,同时几个小时不断的读取磁盘,也会对磁盘的寿命产生不良的影响,频繁的磁盘碎片整理不仅耗时,也大大的减少了磁盘的使用寿命。因此,需要一种智能的磁盘碎片分析方法,能对磁盘碎片整理的方案何时执行提供依据。
发明内容
有鉴于此,本发明实施例提供一种智能的磁盘碎片分析方法、装置及电子设备,能够解决现有磁盘碎片分析方案,不够智能,获取磁盘碎片信息不够全面准确的问题。
第一方面,本发明实施例提供一种智能的磁盘碎片分析方法,包括:
通过Windows管理规范WMI获取磁盘分区信息;
根据磁盘分区信息,获得所有分区中每个文件信息;所述文件信息至少包括文件名称和文件路径;
根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数;
判断每个文件在磁盘分区中的碎片数是否大于1;
若当前文件在磁盘分区中的碎片数大于1,则将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。
结合第一方面,在第一方面的第一种实施方式中,所述若当前文件在磁盘分区中的碎片数大于1,则将磁盘碎片累积数量M更新为M=M+ExtentCount之后,还包括:
判断磁盘碎片累积数量是否大于预设阈值;
若磁盘碎片累积数量大于预设阈值,则发出进行磁盘碎片整理的提示。
结合第一方面,在第一方面的第二种实施方式中,所述判断每个文件在磁盘分区中的碎片数是否大于1,包括:
对于当前文件,判断当前文件是否为预设的系统文件;
若当前文件不是预设的系统文件,则判断当前文件在磁盘分区中的碎片数是否大于1。
结合第一方面,在第一方面的第三种实施方式中,在获取磁盘分区信息之后,还包括:获取所述磁盘分区的每个簇信息;所述簇信息至少包括簇大小;
所述将磁盘碎片累积数量M更新为M=M+ExtentCount;还包括:根据所述磁盘分区的簇大小获取当前文件的每个碎片的大小,以供后续磁盘整理使用。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述获取当前文件的每个碎片的大小,包括:
根据当前文件的PFRETRIEVAL_POINTRES_BUFE,计算当前文件的每个碎片所占簇的数量;
对于当前文件的每个碎片,将当前文件的该碎片所占簇的数量与当前文件所在分区的簇大小之乘积,作为该碎片的大小。
结合第一方面的第二种实施方式,在第一方面的第五种实施方式中,所述预设的系统文件包括:BOOTSECT.DOS,safeboot.fs,safeboot.csv,safeboot.rsv,hiberfil.sys,memory.dmp,pagefile.sys。
结合第一方面的第三种实施方式,在第一方面的第六种实施方式中,所述根据每个簇的大小获取当前文件的每个碎片的大小之后,还包括:
将当前文件的碎片数量及每个碎片的大小信息存储在内存中。
第二方面,本发明实施例提供一种智能的磁盘碎片分析装置,包括:
分区信息获取模块,用于通过Windows管理规范WMI获取磁盘分区信息;
文件信息获取模块,用于根据磁盘分区信息,获得所有分区中每个文件信息;所述文件信息至少包括文件名称和文件路径;
文件参数获取模块,用于根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数;;
第一判断模块,用于判断在磁盘分区中的碎片数是否大于1;
碎片计数模块,用于在所述第一判断模块的判断结果为是时,将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。
结合第二方面,在第二方面的第一种实施方式中,所述智能的磁盘碎片分析装置,还包括:
第二判断模块,用于判断磁盘碎片累积数量是否大于预设阈值;
提示模块,用于在第二判断模块的判断结果为是时,则发出进行磁盘碎片整理的提示。
结合第二方面,在第二方面的第二种实施方式中,所述第一判断模块,包括:
第一判断单元,用于对于当前文件,判断当前文件是否为预设的系统文件;
第二判断单元,用于在所述第一判断单元的判定结果为否时,则判断当前文件在磁盘分区中的碎片数是否大于1。
结合第二方面,在第二方面的第三种实施方式中,还包括:
簇信息获取模块,用于获取所述磁盘分区的每个簇信息;所述簇信息至少包括簇大小;
碎片大小获取模块,用于根据所述磁盘分区的簇大小获取当前文件的每个碎片的大小,以供后续磁盘整理使用。
结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述碎片大小获模块,包括:
簇数量计算单元,用于根据当前文件的PFRETRIEVAL_POINTRES_BUFE,计算当前文件的每个碎片所占簇的数量;
碎片大小计算单元,用于对于当前文件的每个碎片,将当前文件的该碎片所占簇的数量与当前文件所在分区的簇大小之乘积,作为该碎片的大小。
结合第二方面的第二种实施方式,在第二方面的第五种实施方式中,所述预设的系统文件包括:BOOTSECT.DOS,safeboot.fs,safeboot.csv,safeboot.rsv,hiberfil.sys,memory.dmp,pagefile.sys。
结合第二方面的第三种实施方式,在第二方面的第六种实施方式中,所述智能的磁盘碎片分析装置,还包括:
存储模块,用于将当前文件的碎片数量及每个碎片的大小信息存储在内存中。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一方法实施例所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时或实现前述任一方法实施例所述的方法步骤。
本发明实施例提供的一种智能的磁盘碎片分析方法、装置及电子设备,通过获取目标磁盘的分区信息,然后根据分区信息获得分区中每个文件信息,接着根据每个文件信息获得文件的碎片数量,最后逐个统计碎片文件的碎片数,从而获得了整个磁盘的碎片数量,为磁盘整理提供了有效地的依据,避免磁盘碎片过多导致电脑性能下降,并能够解决现有磁盘碎片分析方案,不够智能,获取磁盘碎片信息不够全面准确的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一种智能的磁盘碎片分析方法实施例一的流程图;
图2为本发明一种智能的磁盘碎片分析方法实施例二的流程图;
图3为本发明中计算当前文件的每个碎片所占簇的数量的方法流程图;
图4为本发明一种智能的磁盘碎片分析装置实施例一结构示意图;
图5为本发明一种智能的磁盘碎片分析装置实施例二结构示意图;
图6为本发明一种智能的磁盘碎片分析装置实施例三结构示意图;
图7为本发明一种智能的磁盘碎片分析装置实施例四结构示意图;
图8为本发明一种智能的磁盘碎片分析装置实施例五结构示意图;
图9为本发明一种智能的磁盘碎片分析装置实施例六结构示意图;
图10为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例一种智能的磁盘碎片分析方法、装置及电子设备进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明一种智能的磁盘碎片分析方法实施例一的流程图,如图1所示,本实施例的方法可以包括步骤101-105:
步骤101、获取磁盘分区信息。
本实施例中,所述获取磁盘分区信息的方式为使用Windows管理规范(WindowsManagement Instrumentation:WMI),在步骤101执行之前,需要先初始化WMI对象并链接服务。优选地,此步骤中例如可以通过向WMI服务发送查询指令SELECT*FROM Win32_VolumeWHERE DriveLetter=‘C:’,获取到C盘分区的磁盘信息。
步骤102、根据磁盘分区信息,获得所有分区中每个文件信息。
其中,所述文件信息至少包括文件名称和文件路径。
本实施例中,可以通过DeviceIoControl的FSCTL_ENUM_USN_DATA枚举磁盘上所有的文件,实现方式简单。
步骤103、根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE。
其中,所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数。
本步骤中,可以通过调用DeviceIoControl,向系统发送FSCTL_GET_RETRIEVAL_POINTERS命令,获得关于文件保存位置信息的RETRIEVAL_POINTERS_BUFFER结构体,从而拿到文件在分区上的物理存储位置信息。其中,PFRETRIEVAL_POINTRES_BUFER为一C++结构体,其结构如下:
Figure BDA0003451106830000061
Figure BDA0003451106830000071
此结构体表示了文件在分区上的物理存储位置信息,其成员变量含义如下:
ExtentCount:表示文件在分区中的碎片数,当值为1的时候,该文件在分区上为连续存储,当值为N且大于1的时候,表示该文件由N个碎片组成。
StartingVcn:表示文件开始的虚拟簇编号,通常为0,其中虚拟簇编号:一个文件可能由N个碎片组成,每个碎片又由M个连续簇组成,虚拟簇编号是指该碎片在本文件中为第几个簇。
NextVcn:数组中下一个碎片的首个簇的虚拟簇编号。
Lcn:数组中下一个碎片的首个簇的逻辑簇编号,其中,逻辑簇编号为簇在分区中的绝对编号。
通过PFRETRIEVAL_POINTRES_BUFER这个结构体,能有效、准确、快速地获知文件的碎片情况。
步骤104、判断每个文件在磁盘分区中的碎片数是否大于1,是则执行步骤105。
本实施例中,PFRETRIEVAL_POINTRES_BUFER结构体中的ExtentCount参数表示文件在分区中的碎片数,当值不大于1的时候,该文件在分区上为连续存储,即不为碎片文件;当值为大于1的时候,表示该文件由N个碎片组成,即为碎片文件,碎片数为ExtentCount属性值。此步骤中,若判断出当前文件在磁盘分区中的碎片数不大于1,则继续将下一个文件作为当前文件,判断该文件在磁盘分区中的碎片数是否大于1。本步骤提供的方式获取碎片数具有获取碎片信息准确的优点。
作为一可选实施例,本步骤104,可以包括步骤1041-1042:
步骤1041、对于当前文件,判断当前文件是否为预设的系统文件,否则执行步骤1042。
本实施例中,所述预设的系统文件包括:BOOTSECT.DOS,safeboot.fs,safeboot.csv,safeboot.rsv,hiberfil.sys,memory.dmp,pagefile.sys,这些系统文件为不可移动文件,无需计算碎片,在保证碎片数计算准确的情况下,也能有效地提高系统的性能。
步骤1042、判断当前文件的PFRETRIEVAL_POINTRES_BUFER参数下的ExtentCount属性值是否大于1。
步骤105、将磁盘碎片累积数量M更新为M=M+ExtentCount。
其中,M的初始值为0。
本实施例中,单个文件的碎片数能客观的描述单个文件的存储情况,将每个单独的碎片文件的碎片数进行累加,获得的即是磁盘中碎片的总数,便于后续依据此信息进行磁盘碎片的整理。
作为一可选实施例,本步骤105之后,还包括步骤1051-1052:
步骤1051、判断磁盘碎片累积数量是否大于预设阈值,是则执行步骤1052。
本实施例中,预设阈值为900,另外可以根据磁盘的大小,进行合理的调整,例如:磁盘的空间非常大时,可以将此值调大,如果磁盘比较小,则可以将此值设置小一点,如800,从而使得磁盘整理的效率更高。
步骤1052、发出进行磁盘碎片整理的提示。
本实施例中,例如可以实时计算或者定期(如:半个月)检查本机的碎片数,当碎片数达到一定数量,比如900后,则弹出提示提醒用户电脑磁盘碎片过多,影响电脑使用效率,需要进行磁盘碎片清理。
本发明实施例提供的一种智能的磁盘碎片分析方法,通过获取目标磁盘的分区信息,然后根据分区信息获得分区中每个文件信息,接着根据每个文件信息获得文件的碎片数量,最后逐个统计碎片文件的碎片数,从而获得了整个磁盘的碎片数量,为磁盘整理提供了有效地的依据,并能智能在磁盘的碎片数量达到一定的值时,提醒用户进行磁盘碎片的整理,避免磁盘碎片过多导致电脑性能下降,能够解决现有磁盘碎片分析方案,不够智能,获取磁盘碎片信息不够全面准确的问题。
图2为本发明一种智能的磁盘碎片分析方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、通过Windows管理规范WMI获取磁盘分区信息。
步骤202、获取所述磁盘分区的每个簇信息。
其中,所述簇信息至少包括簇大小。
优选地,本步骤通过DeviceIoControl的FSCTL_GET_VOLUME_BITMAP控制指令,可以获得磁盘的每个簇信息。
本实施例中,簇是系统在硬盘上读写文件时的单位,是一个数据块。而扇区是硬盘划分的最小单位值,就是簇(数据块)占用的地方,簇的大小大于扇区的大小。磁盘每簇的扇区数与磁盘的总容量大小有关。扇区是存储介质上可由磁盘寻址的基本单位,x86系统几乎总是定义512字节的扇区大小;簇是许多文件系统格式使用的可寻址数据块,簇的大小总是扇区大小的整数倍,且不同文件系统对于不同大小的卷(分区)会有不同的默认簇大小,比如FAT32对于8GB以下的分区,默认簇大小为4KB,对于8GB~16GB的分区,默认簇大小为16个扇区(8KB),NTFS对于大于2GB的分区,默认簇大小为8个扇区(4KB),获取到每个分区的簇大小信息,便于后续对碎片的大小进行计算。
本实施例中,获取簇大小的方法可以是:例如启动powershell输入命令fsutilfsinfo ntfsinfo D:可以查看到D盘的簇的大小,也可以调用系统的GetDiskFreeSpace获取簇的大小。
步骤203、根据磁盘分区信息,获得所有分区中每个文件信息。
本实施例中,本步骤和上述方法实施例的步骤102类似,此处不再赘述。
步骤204、根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFER。
本实施例中,本步骤和上述方法实施例的步骤103类似,此处不再赘述。
步骤205、判断每个文件在磁盘分区中的碎片数是否大于1,是则执行步骤206。
本实施例中,本步骤和上述方法实施例的步骤104类似,此处不再赘述。
步骤206、将磁盘碎片累积数量M更新为M=M+ExtentCount,并根据磁盘分区的簇大小获取当前文件的每个碎片的大小。
其中,所述ExtentCount为当前文件在磁盘分区中的碎片数。
本实施例中,磁盘碎片累积数量M的计算方法和上述方法实施例的步骤105类似,此处不再赘述。
本实施例提供的磁盘碎片分析方法中,最终分析得到磁盘的碎片数和每个碎片的大小提供给用户,用户可根据当前磁盘的分析结果(即碎片数量和各碎片大小),来判断是否需要执行磁片碎片整理等后续步骤,若需要继续进行磁盘整理,则启用预设的磁盘整理方法,在磁盘整理时,可以使用本发明提供的磁盘分析方法得到的分析结果数据。
在一可选实施例中,在步骤206之后,还可以包括步骤:将当前文件的碎片数量及每个碎片的大小信息存储在内存中,以备用户随时调用查看。
优选地,步骤206中,确定当前文件的每个碎片的大小的方法包括步骤A11-A12:
步骤A11、根据当前文件的PFRETRIEVAL_POINTRES_BUFE,计算当前文件的每个碎片所占簇的数量;
步骤A12、将当前文件的当前碎片所占簇的数量与当前文件所在分区的簇大小之乘积,作为当前文件的当前碎片的大小。
图3所示为步骤A11的具体实施方法流程中,如图3中所示,计算当前文件的每个碎片所占簇的数量的方法包括以下步骤A111-A115:
步骤A111、将当前文件的PFRETRIEVAL_POINTRES_BUFER中记录的Extents[0].NextVcn减去StartingVcn,作为当前文件第1个碎片所占簇的数量。
本实施例中,获取当前文件碎片的大小,首先要计算出当前文件碎片占用的簇的个数,此信息可通过当前文件的PFRETRIEVAL_POINTRES_BUFER结构体记录的信息来获取。其中,用Extents[0].NextVcn减去StartingVcn,得到的值就是文件第1个碎片所占簇的数量X1,然后将此簇数X1乘以当前文件所在分区的簇大小(如4KB),从而就可以快速的获得当前文件的第1个碎片大小为4XKB。
步骤A112、判断N是否等于当前文件的ExtentCount属性值;是则执行步骤A113,否则执行步骤A114。
其中,N的初始值为1。
本实施例中,如果N等于当前文件的PFRETRIEVAL_POINTRES_BUFER中记录的ExtentCount属性值,则代表当前文件的所有碎片所占簇的数量已经计算完成,将当前文件各个碎片所占簇的数量乘以当前文件所在磁盘分区的簇大小,就可以得到当前文件的各碎片占用的存储空间的大小;如果N不等于当前文件的ExtentCount属性值,则代表当前文件还有碎片所占用的簇的数量还未进行计算,继续执行步骤A114。
步骤A113、将当前文件各个碎片所占簇的数量乘以当前文件所在分区的簇大小,得到的乘积分别作为当前文件每个碎片的大小。
本实施例中,将当前文件的碎片数量及每个碎片的大小信息存储在内存中,将便于读取这些信息,并快速向用户展示文件的信息,从而方便用户开展进一步的工作。
步骤A114、设置N=N+1。
步骤A115、将当前文件的PFRETRIEVAL_POINTRES_BUFER中记录的Extents[N].NextVcn与Extents[N-1].NextVcn的差,作为当前文件第N个碎片所占簇的数量,随后返回执行步骤A112。
本实施例中,当要计算文件的非第1个碎片所占用的簇时,可以让文件的PFRETRIEVAL_POINTRES_BUFER结构体中记录的的Extents[N].NextVcn减去Extents[N-1].NextVcn,就可得到文件第N个碎片所占簇的数量XN,然后将此簇数XN乘以文件所在分区的簇大小,从而就可以快速的获得文件的第N个碎片大小。
本发明实施例提供的一种智能的磁盘碎片分析方法,通过获取目标磁盘的分区信息,然后根据分区信息获得分区中每个文件信息,接着根据每个文件信息获得文件的碎片数量,最后逐个统计碎片文件的碎片数,从而获得了整个磁盘的碎片数量,为磁盘整理提供了有效地的依据;进一步的,可以通过碎片文件的各个碎片占用簇的数量,计算文件各个碎片的大小,随后可以方便的获得碎片文件的大小,然后将碎片文件的碎片数量和大小信息提供给用户,实现对磁盘碎片分析的目的。
在一可选实施例中,本发明提供的智能磁盘碎片分析方法,除了能够分析提供磁盘碎片数以及碎片大小信息,还给出存储空间的存储状态,以便后期对磁盘碎片进行进一步的整理。具体地,本实施例在图2所述步骤202和步骤203之间,所述分析方法还包括步骤:根据每个簇信息设置内存数据状态。此处所述内存数据状态记录了内存数据是否空闲以及非空闲的内存空间存储的文件是否是连续文件。
图4为本发明一种智能的磁盘碎片分析装置实施例一结构示意图,如图4所示,本实施例的装置可以包括:
分区信息获取模块1,用于通过Windows管理规范WMI获取磁盘分区信息。
文件信息获取模块2,用于根据磁盘分区信息,获得所有分区中每个文件信息;所述文件信息至少包括文件名称和文件路径。
文件参数获取模块3,用于根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数。
第一判断模块4,用于判断每个文件在磁盘分区中的碎片数是否大于1。
碎片计数模块5,用于在第一判断模块4的判断结果为是时,将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明一种智能的磁盘碎片分析装置实施例二的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,所述智能的磁盘碎片分析装置,还包括:
第二判断模块6,用于判断磁盘碎片累积数量是否大于预设阈值。
提示模块7,用于在第二判断模块6的判断结果为是时,发出进行磁盘碎片整理的提示。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明一种智能的磁盘碎片分析装置实施例三的结构示意图,如图6所示,本实施例的装置在图4所示装置结构的基础上,进一步地,第一判断模块4,包括:
第一判断单元41,用于对于当前文件,判断当前文件是否为预设的系统文件。优选地,所述预设的系统文件包括:BOOTSECT.DOS,safeboot.fs,safeboot.csv,safeboot.rsv,hiberfil.sys,memory.dmp,pagefile.sys。
第二判断单元42,用于在第一判断单元41的判定结果为否时,判断当前文件在磁盘分区中的碎片数是否大于1。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明一种智能的磁盘碎片分析装置实施例四的结构示意图,如图7所示,本实施例的装置在图4所示装置结构的基础上,进一步地,还包括:
簇信息获取模块8,用于获取所述磁盘分区的每个簇信息;所述簇信息至少包括簇大小。
碎片大小获取模块9,用于根据所述磁盘分区的簇大小获取当前文件的每个碎片的大小,以供后续磁盘整理使用。
本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明一种智能的磁盘碎片分析装置实施例五的结构示意图,如图7所示,本实施例的装置在图7所示装置结构的基础上,进一步地,碎片大小获模块9,包括:
簇数量计算单元91,用于根据当前文件的PFRETRIEVAL_POINTRES_BUFE,计算当前文件的每个碎片所占簇的数量。
碎片大小计算单元92,用于对于当前文件的每个碎片,将当前文件的该碎片所占簇的数量与当前文件所在分区的簇大小之乘积,作为该碎片的大小。
优选地,本实施例中,簇数量计算单元91可以根据图3所示方法计算当前文件的每个碎片所占簇的数量的方法。
本实施例的装置,可以用于执行图1或图2及图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明一种智能的磁盘碎片分析装置实施例六的结构示意图,如图9所示,本实施例的装置在图7所示装置结构的基础上,进一步地,所述磁盘碎片分析装置,还包括:存储模块10,用于将当前文件的碎片数量及每个碎片的大小信息存储在内存中。
本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明电子设备一个实施例的结构示意图,如图10所示,上述电子设备可以包括:壳体81、处理器82、存储器83、电路板84和电源电路85,其中,电路板84安置在壳体81围成的空间内部,处理器82和存储器83设置在电路板84上;电源电路85,用于为上述电子设备的各个电路或器件供电;存储器83用于存储可执行程序代码;处理器82通过读取存储器83中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例的智能磁盘碎片整理方法。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时或实现前述任一实施例所述的智能磁盘碎片整理方法步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种智能的磁盘碎片分析方法,其特征在于,包括:
获取磁盘分区信息;
根据磁盘分区信息,获得所有分区中每个文件信息;所述文件信息至少包括文件名称和文件路径;
根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数;
判断每个文件在磁盘分区中的碎片数是否大于1;
若当前文件在磁盘分区中的碎片数大于1,则将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。
2.根据权利要求1所述的智能的磁盘碎片分析方法,其特征在于,所述若当前文件在磁盘分区中的碎片数大于1,则将磁盘碎片累积数量M更新为M=M+ExtentCount之后,还包括:
判断磁盘碎片累积数量是否大于预设阈值;
若磁盘碎片累积数量大于预设阈值,则发出进行磁盘碎片整理的提示。
3.根据权利要求1所述的智能的磁盘碎片分析方法,其特征在于,所述判断每个文件在磁盘分区中的碎片数是否大于1,包括:
对于当前文件,判断当前文件是否为预设的系统文件;
若当前文件不是预设的系统文件,则判断当前文件在磁盘分区中的碎片数是否大于1。
4.根据权利要求1所述的智能的磁盘碎片分析方法,其特征在于,在获取磁盘分区信息之后,还包括:
获取所述磁盘分区的每个簇信息;所述簇信息至少包括簇大小;
所述将磁盘碎片累积数量M更新为M=M+ExtentCount;还包括:根据所述磁盘分区的簇大小获取当前文件的每个碎片的大小,以供后续磁盘整理使用。
5.根据权利要求4所述的智能的磁盘碎片分析方法,其特征在于,所述获取当前文件的每个碎片的大小,包括:
根据当前文件的PFRETRIEVAL_POINTRES_BUFE,计算当前文件的每个碎片所占簇的数量;
对于当前文件的每个碎片,将当前文件的该碎片所占簇的数量与当前文件所在分区的簇大小之乘积,作为该碎片的大小。
6.根据权利要求3所述的智能的磁盘碎片分析方法,其特征在于,所述预设的系统文件包括:BOOTSECT.DOS,safeboot.fs,safeboot.csv,safeboot.rsv,hiberfil.sys,memory.dmp,pagefile.sys。
7.根据权利要求4所述的智能的磁盘碎片分析方法,其特征在于,所述根据每个簇的大小获取当前文件的每个碎片的大小之后,还包括:
将当前文件的碎片数量及每个碎片的大小信息存储在内存中。
8.一种智能的磁盘碎片分析装置,其特征在于,包括:
分区信息获取模块,用于通过Windows管理规范WMI获取磁盘分区信息;
文件信息获取模块,用于根据磁盘分区信息,获得所有分区中每个文件信息;所述文件信息至少包括文件名称和文件路径;
文件参数获取模块,用于根据文件信息,获取每个文件在分区上的物理存储位置信息PFRETRIEVAL_POINTRES_BUFE;所述PFRETRIEVAL_POINTRES_BUFE记录有文件在磁盘分区中的碎片数;
第一判断模块,用于判断每个文件在磁盘分区中的碎片数是否大于1;
碎片计数模块,用于在所述第一判断模块的判断结果为是时,将磁盘碎片累积数量M更新为M=M+ExtentCount;所述ExtentCount为当前文件在磁盘分区中的碎片数。
9.根据权利要求8所述的智能的磁盘碎片分析装置,其特征在于,还包括:
第二判断模块,用于判断磁盘碎片累积数量是否大于预设阈值;
提示模块,用于在第二判断模块的判断结果为是时,则发出进行磁盘碎片整理的提示。
10.根据权利要求8所述的智能的磁盘碎片分析装置,其特征在于,所述第一判断模块,包括:
第一判断单元,用于对于当前文件,判断当前文件是否为预设的系统文件;
第二判断单元,用于在所述第一判断单元的判定结果为否时,判断当前文件在磁盘分区中的碎片数是否大于1。
CN202111675481.2A 2021-12-31 2021-12-31 一种智能的磁盘碎片分析方法、装置及电子设备 Pending CN114327296A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111675481.2A CN114327296A (zh) 2021-12-31 2021-12-31 一种智能的磁盘碎片分析方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111675481.2A CN114327296A (zh) 2021-12-31 2021-12-31 一种智能的磁盘碎片分析方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN114327296A true CN114327296A (zh) 2022-04-12

Family

ID=81023851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111675481.2A Pending CN114327296A (zh) 2021-12-31 2021-12-31 一种智能的磁盘碎片分析方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114327296A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116225339A (zh) * 2023-03-14 2023-06-06 大庆市壹零零壹数据服务有限公司 一种基于物联网的计算机信息存储分析系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423271A (zh) * 2001-12-03 2003-06-11 英业达股份有限公司 计算磁盘碎片率的方法及系统
US20070050390A1 (en) * 2005-08-24 2007-03-01 Maynard Nicholas C Method and Apparatus For The Defragmentation Of A File System
CN102760168A (zh) * 2012-06-13 2012-10-31 腾讯科技(深圳)有限公司 碎片文件扫描的方法及装置
CN103793210A (zh) * 2012-10-29 2014-05-14 腾讯科技(深圳)有限公司 磁盘整理方法、装置及系统
CN108959500A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种对象存储方法、装置、设备及计算机可读存储介质
CN109508300A (zh) * 2018-11-22 2019-03-22 努比亚技术有限公司 一种磁盘碎片整理方法、设备及计算机可读存储介质
CN111459848A (zh) * 2020-03-31 2020-07-28 Oppo广东移动通信有限公司 一种文件碎片的整理方法、装置、存储介质及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423271A (zh) * 2001-12-03 2003-06-11 英业达股份有限公司 计算磁盘碎片率的方法及系统
US20070050390A1 (en) * 2005-08-24 2007-03-01 Maynard Nicholas C Method and Apparatus For The Defragmentation Of A File System
CN102760168A (zh) * 2012-06-13 2012-10-31 腾讯科技(深圳)有限公司 碎片文件扫描的方法及装置
CN103793210A (zh) * 2012-10-29 2014-05-14 腾讯科技(深圳)有限公司 磁盘整理方法、装置及系统
CN108959500A (zh) * 2018-06-26 2018-12-07 郑州云海信息技术有限公司 一种对象存储方法、装置、设备及计算机可读存储介质
CN109508300A (zh) * 2018-11-22 2019-03-22 努比亚技术有限公司 一种磁盘碎片整理方法、设备及计算机可读存储介质
CN111459848A (zh) * 2020-03-31 2020-07-28 Oppo广东移动通信有限公司 一种文件碎片的整理方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116225339A (zh) * 2023-03-14 2023-06-06 大庆市壹零零壹数据服务有限公司 一种基于物联网的计算机信息存储分析系统及方法
CN116225339B (zh) * 2023-03-14 2023-12-12 北京兴汉网际股份有限公司 一种基于物联网的计算机信息存储分析系统及方法

Similar Documents

Publication Publication Date Title
US11068455B2 (en) Mapper tree with super leaf nodes
CN103064639B (zh) 数据存储方法及装置
US8760956B1 (en) Data processing method and apparatus
CN103019887B (zh) 数据备份方法及装置
WO2017185579A1 (zh) 一种数据存储方法及装置
CA2442188A1 (en) Methods and mechanisms for proactive memory management
CN108628542B (zh) 一种文件合并方法及控制器
US20070115761A1 (en) Displaying storage information on portable storage device
US10095439B2 (en) Tiered storage system, storage controller and data location estimation method
CN109710455A (zh) 基于fat32文件系统的删除文件恢复方法及系统
WO2021073635A1 (zh) 一种数据存储方法及装置
CN112286461A (zh) 一种数据迁移方法、装置及电子设备和存储介质
CN112433676A (zh) 一种固态硬盘的垃圾回收处理方法及系统
CN114138193A (zh) 一种分区命名空间固态硬盘的数据写入方法、装置及设备
CN112463020A (zh) 基于Flash的数据存取方法、装置及设备
CN107229421B (zh) 视频数据存储系统的创建、文件写入和读取方法及装置
CN114327296A (zh) 一种智能的磁盘碎片分析方法、装置及电子设备
CN114996173A (zh) 一种管理存储设备写操作的方法和装置
CN109521970B (zh) 一种数据处理方法及相关设备
CN102955787A (zh) 一种文件目录表的使用方法、文件写入方法及应用的主电路板、cpu和外部存储器
CN106156038B (zh) 数据存储方法和装置
CN116339643B (zh) 一种磁盘阵列的格式化方法、装置、设备和介质
CN114238161A (zh) 一种智能的磁盘碎片整理方法、装置及电子设备
CN115934002A (zh) 固态硬盘的访问方法、固态硬盘、存储系统及云服务器
CN111459848B (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