快好知 kuaihz

快速批量获取当前文件夹及子文件夹的大小

前言

计算机的内存是有限的,面对海量的数据和垃圾文件,我们的电脑越来越慢,这时我们想清理一下我们的硬盘,通常的方法是:看一下哪个分区或目录占用的空间比较大,然后再看一下目录下的文件是否可以删除.

 

但是当我们打开资源管理器看到的却是这个样子的.

 

发现:只有文件显示大小,文件夹是不显示的.如果需要知道某个文件夹大小,需要点击右键,属性,如下图所示.

 

 

获取文件夹大小

虽然我们不知道微软为何不显示文件夹大小,但是我们一定要知道如何去获取文件夹大小的方法.

 

在当前文件夹内创建一个EXCEL文件,我们可以起名为”文件夹大小.xlsm”,打开文件时,启用宏,按ALT+F11打开VBA编辑器,插入模块,并写入如下代码:

 

"设置公共变量

Public i

Public n

 

Sub foldersize() "主程序

"验证当前工作表名称,防止写错

If ActiveSheet.Name = "foldersize" Then

"清除所有单元格

Cells.Clear

"清除分级显示

Cells.ClearOutline

Else

Exit Sub

End If

"初始化公共变量

i = 2

n = 1

Dim fso, fld

"定义对象

Set fso =CreateObject("scripting.filesystemobject")

Set fld = fso.getfolder(ThisWorkbook.Path)

"设置表头

Cells(1, 1) = "文件夹名称"

Cells(1, 2) = "文件夹大小(MB)"

 

subfd fld

End Sub

 

 

 

Sub subfd(fds) "子程序

For Each fd In fds.subfolders

If n <= 7 Then

Rows(i).OutlineLevel = n

Else

Rows(i).OutlineLevel = 7

End If

"写入文件夹名称

Cells(i, 1) = fd.Name

"缩进

Cells(i, 1).InsertIndent (n)

"设置超级链接

ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1),Address:=fd.Path

" 写入文件夹大小

Cells(i, 2) = WorksheetFunction.Text(Round(fd.size / 1024 /1024, 2), "0.00")

i = i + 1

"如果有子文件夹,则进行迭代

If fd.subfolders.Count <> 0 Then

"增加缩进量

n = n + 1

"迭代

subfd fd

Else:

n = n + 1

End If

n = n - 1

Next

"设置分组显示,汇总在上面

ActiveSheet.Outline.SummaryRow = xlAbove

End Sub

 

 

运行foldersize主程序,结果如下图所示:

列出了当前目录的每一个文件夹名称及大小,并且运用了分级显示,目录子目录清清楚楚,还设置了超级链接,只有点击就可以进入你想要的目录。

 

总结

心动不如行动,同学们也赶紧试试吧!记得把当前工作表的名字改成foldersize,不然没有结果哦!

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:文件夹  文件夹词条  批量  批量词条  获取  获取词条  大小  大小词条  当前  当前词条  
综合

 小技巧:让你的手机秒变扫描仪

平常在工作当中可能会遇到有需要录入的资料,比如纸质版本的文件变为电子档,快速录入身份信息……今天小编分享一个简单的办法,无需下载!第一步打开手机,找到【便签】或...(展开)

综合

 Python数据类型串讲(中)

Python数据类型串讲(中)1、序列1.1 序列简介 所谓序列,即元素的有序排列。序列中每个位置的元素都有其对应的唯一编号,也就是说我们可以通过元素...(展开)