前言计算机的内存是有限的,面对海量的数据和垃圾文件,我们的电脑越来越慢,这时我们想清理一下我们的硬盘,通常的方法是:看一下哪个分区或目录占用的空间比较大,然后再看一下目录下的文件是否可以删除. 但是当我们打开资源管理器看到的却是这个样子的. 发现:只有文件显示大小,文件夹是不显示的.如果需要知道某个文件夹的大小,需要点击右键,属性,如下图所示. 获取文件夹大小虽然我们不知道微软为何不显示文件夹的大小,但是我们一定要知道如何去获取文件夹大小的方法. 在当前文件夹内创建一个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,不然没有结果哦! |
|