掌桥专利:专业的专利平台
掌桥专利
首页

一种文件夹容量统计方法及其系统

文献发布时间:2024-04-18 19:58:26


一种文件夹容量统计方法及其系统

技术领域

本发明涉及文件夹容量统计领域,特别是一种文件夹容量统计方法及其系统。

背景技术

计算机相关技术中,为了确定应用程序占用的存储空间,电子设备需要逐个扫描应用程序根目录下的全部子文件夹占用存储空间的大小(在本公开中,文件夹占用存储空间的大小也称之为文件夹的大小(容量)),并累加这些子文件夹的大小,确定应用程序占用的存储空间的大小。

目前windows的资源管理器只统计文件大小,对于文件夹大小统计,每次需要重新开始计算统计,当文件夹内容越来越多时,统计时长也会变得更久,耗时长。

发明内容

为克服windows的资源管理器只统计文件大小,对于文件夹大小统计,需要重新开始计算统计,耗时长的问题。

本发明采用以下方案实现:

一种文件夹容量统计方法,所述方法步骤如下:

步骤1:通过MFT主文件表快速统计出现有文件夹的大小,保存在内存缓存中;

步骤2:对文件夹的变更事件进行监听;

步骤3:如果文件夹事件变更,则对相关文件夹进行计数,并在对应的时间节点下进行计数,增加变更信息;

步骤4:如果文件变夹变更频率高,则采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,获取文件夹的大小。

进一步的,步骤1进一步具体为:通过解析MFT主文件表的表,遍历文件夹中的文件,从MFT表的属性中读取出文件大小进行累加。

进一步的,步骤2进一步具体为:通过设置Windows Api中的ReadDirectoryChangesW函数读取磁盘变更信息对文件夹变更事件做监听。

进一步的,步骤3进一步具体为:如果文件夹事件变更,则将变更文件夹及其父级所有文件夹的大小进行更新,并在按日计数的数据中、按周计数的数据中、按月计数的数据中以及按年计数的数据中,计数量增加并增加变更信息,所述变更信息包括文件路径和文件大小。

进一步的,步骤4进一步具体为:判断文件夹大小每小时变化是否超过1次,是,则频率高,采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,通过获取资源管理器文件夹显示位置,并在资源管理器文件夹的顶层渲染文件夹大小,覆盖文件夹原来的位置,查看文件夹大小。

一种文件夹容量统计系统,所述系统包括:快速统计模块、监听模块、计数模块、文件夹大小获取模块;

所述快速统计模块用于通过MFT主文件表快速统计出现有文件夹的大小,保存在内存缓存中;

所述监听模块用于对文件夹的变更事件进行监听;

所述计数模块用于如果文件夹事件变更,则对相关文件夹进行计数,并在对应的时间节点下进行计数,增加变更信息;

所述文件夹大小获取模块用于如果文件变夹变更频率高,则采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,获取文件夹的大小。

进一步的,快速统计模块进一步具体为:通过解析MFT主文件表的表,遍历文件夹中的文件,从MFT表的属性中读取出文件大小进行累加。

进一步的,监听模块进一步具体为:通过设置Windows Api中的ReadDirectoryChangesW函数读取磁盘变更信息对文件夹变更事件做监听。

进一步的,计数模块进一步具体为:如果文件夹事件变更,则将变更文件夹及其父级所有文件夹的大小进行更新,并在按日计数的数据中、按周计数的数据中、按月计数的数据中以及按年计数的数据中,计数量增加并增加变更信息,所述变更信息包括文件路径和文件大小。

进一步的,文件夹大小获取模块进一步具体为:判断文件夹大小每小时变化是否超过1次,是,则频率高,采用实时计算的方式递归计算文件夹容量,否则,通过获取资源管理器文件夹显示位置,并在资源管理器文件夹的顶层渲染文件夹大小,覆盖文件夹原来的位置,读取缓存查看文件夹大小。

本发明的有益效果在于:本发明提供的一种文件夹容量统计方法及其系统,能够在文件数量很多的情况下,更快的展示出文件夹大小。

附图说明

图1为本发明方法的流程示意图;

图2为本发明系统的结构框图。

具体实施方式

下面结合附图对本发明做进一步说明。

请参见图1,一种文件夹容量统计方法,所述方法步骤如下:

步骤1:通过MFT主文件表快速统计出现有文件夹的大小,保存在内存缓存中;

步骤2:对文件夹的变更事件进行监听;

步骤3:如果文件夹事件变更,则对相关文件夹进行计数,并在对应的时间节点下进行计数,增加变更信息;

步骤4:如果文件变夹变更频率高,则采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,获取文件夹的大小。

下面结合一个具体实施例来对本发明进行进一步说明:

一种文件夹容量统计方法,所述方法为:

通过解析MFT主文件表的表,遍历文件夹中的文件,从MFT表的属性中读取出文件大小进行累加;

通过MFT中计算文件夹D:文件夹1的大小为100M;

设置Windows Api中的ReadDirectoryChangesW函数读取磁盘变更信息对文件夹变更事件做监听;

设置ReadDirectoryChangesW对D:文件夹1进行事件监听。

如果文件夹事件变更,则将变更文件夹及其父级所有文件夹的大小进行更新,并在按日计数的数据中、按周计数的数据中、按月计数的数据中以及按年计数的数据中,计数量增加并增加变更信息,所述变更信息包括文件路径和文件大小;

如果D:文件夹1下的D:文件夹1文件1.txt变更,原来D:文件夹1日变更数为0,周变更数1,月变更数10,年变更数20.累加后,日变更数1,周变更数2,月变更数11,年变更数21.

判断文件夹大小每小时变化是否超过1次,是,则频率高,采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,通过获取资源管理器文件夹显示位置,并在资源管理器文件夹的顶层渲染文件夹大小,覆盖文件夹原来的位置,查看文件夹大小。

递归计算的同时,如果某个子目录是变更频率低的,则可以直接获取缓存中的子目录的容量大小,就不用把所有文件夹都递归计算,也能够提高统计速度。

如果D:文件夹1的每小时变化不超过1次,则直接从缓存读取上一次D:文件夹1的大小,直接显示。

请参见图2,一种文件夹容量统计系统,所述系统包括:快速统计模块、监听模块、计数模块、文件夹大小获取模块;

所述快速统计模块用于通过MFT主文件表快速统计出现有文件夹的大小,保存在内存缓存中;

所述监听模块用于对文件夹的变更事件进行监听;

所述计数模块用于如果文件夹事件变更,则对相关文件夹进行计数,并在对应的时间节点下进行计数,增加变更信息;

所述文件夹大小获取模块用于如果文件变夹变更频率高,则采用实时计算的方式递归计算文件夹容量,否则,直接通过读取缓存,获取文件夹的大小。

快速统计模块进一步具体为:通过解析MFT主文件表的表,遍历文件夹中的文件,从MFT表的属性中读取出文件大小进行累加。

监听模块进一步具体为:通过设置Windows Api中的ReadDirectoryChangesW函数读取磁盘变更信息对文件夹变更事件做监听。

计数模块进一步具体为:如果文件夹事件变更,则将变更文件夹及其父级所有文件夹的大小进行更新,并在按日计数的数据中、按周计数的数据中、按月计数的数据中以及按年计数的数据中,计数量增加并增加变更信息,所述变更信息包括文件路径和文件大小。

文件夹大小获取模块进一步具体为:判断文件夹大小每小时变化是否超过1次,是,则频率高,采用实时计算的方式递归计算文件夹容量,否则,通过获取资源管理器文件夹显示位置,并在资源管理器文件夹的顶层渲染文件夹大小,覆盖文件夹原来的位置,读取缓存查看文件夹大小。

总之,本发明提供的一种文件夹容量统计方法及其系统,能够在文件数量很多的情况下,更快的展示出文件夹大小。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

相关技术
  • 一种文件夹中应用程序图标的显示方法、系统及终端设备
  • 一种柔直系统计量方法、计量装置精度检测方法及系统
  • 一种计及节点热价的综合能源系统两阶段容量配置方法
  • 上传文件夹时动态调整空间容量的方法及系统
  • 上传文件夹时动态调整空间容量的方法及系统
技术分类

06120116487871