如果你好好看看电脑的资源管理器,你会发现:资源管理器中的文件不会显示其大小,而仅仅显示了文件的大小。

问题来了:为什么不可以在资源管理器中显示文件夹的大小呢?这不是一项很方便的功能吗?

如果你看过我之前的一篇关于计算机网络中不会自动探测所有主机的文章的话,则原因你可能已经猜到了。

这样做会使公司的内部网络崩溃,此话怎讲?

我们假设这样一个场景,在一个公司内部网络中,有一个大型的文件服务器,如果现在资源管理器要显示所有文件夹的大小,则它就需要开始递归式的查询文件服务器上的每个文件夹的大小,如果文件夹很多,单单是一个人进行此项查询都会带来糟糕的结果,如果有一百多号人同时这样做的话,服务器则不停的运行此项任务从而导致高负载。

更糟糕的是:如果文件服务器距离很远,例如在海外,带宽有限的情况下,所有的带宽都被用来计算文件夹大小,从而无法执行其他日常任务。

你可能会说,资源管理器可以注册一个文件系统变更回调函数,从而在文件发生变化的时候才执行计算,但是这也只是杯水车薪,不会对问题有显著的改善,而且,这个通知机制是被动的。

即使在家用计算机上,自动计算文件夹大小仍然不是一个好主意。

我们想象一下:如果每打开一个文件夹导致资源管理器开始以递归方式”搅动”磁盘计算所有文件夹大小,你会怎么想?

总结

恩,实时更新文件夹大小,确实是一项诱人的功能,但是实现起来,却代价不小。
到底有没有一种好的办法呢?

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why doesn’t Explorer show recursive directory size as an optional column?》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(TopomelBox)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

打开网易新闻 查看更多图片