win8显示文件夹大小-(win8显示文件夹大小怎么设置)
来源:191路由网 2022-12-30 15:36:25
有一天,上头来了一个活儿:我需要程序计算一个文件夹的大小。
有朋友可能会觉着,这事儿忒简单,只需要将这个文件夹里的所有文件的大小累加起来不就是文件夹的大小了。
如果它只是这样简单就好了。
有很多事情使计算文件夹的大小变得困难,其中一些甚至会令人怀疑”文件夹大小”这个概念是否真正存在。下面我们来看看。
重解析点(Reparse points)关于重解析点,我们上次提到过这个。 在计算文件夹大小时,是否要递归处理重解析点?这取决于你计算文件夹大小的原因。 如果计算文件夹大小,是为了向用户显示删除文件夹后将会释放多少磁盘空间,那么是否这样做,取决于将如何删除重解析点。
如果计算大小是为了准备进行复制这个文件夹,那么你可能会这样做。 或者你可能不这样做——是否应该仅仅复制重解析点? 如果用户没有创建重解析点的权限怎么办? 或者如果目标位置不支持重解析点? 或者如果用户创建副本是因为他们正在制作备份?
硬链接是同一文件的多个文件夹条目。如果你在计算一个目录的大小并且你发现了一个硬链接,你会计算文件的完整大小吗?或者你是说硬链接的每个条目都承载着文件”权重”的一小部分? (所以如果一个文件有两个硬链接,那么每个条目都占文件大小的一半。)
在硬链接之间划分文件的“权重”可以避免重复计算(或更高),以便在找到所有硬链接时,正确计算文件的总大小。它代表了一个概念,即所有指向文件的硬链接“分担”文件消耗的资源的成本。但是如果你没有找到所有的硬链接怎么办?电脑文件大小被低估是正确的吗?
如果你正在复制一个文件并且你发现它有多个硬链接,你会怎么做?复制操作是否会破坏了副本中的链接?你会尝试重建它们吗?如果目的地不支持硬链接怎么办?
压缩文件(Compressed files)我说的是文件系统压缩,而不是像ZIP这样的外部压缩算法。
将目录中文件的大小相加时,是逻辑大小还是物理大小相加? 如果你正在计算准备复制的大小,那么你 可能需要逻辑大小,但如果是计算通过删除它可以释放多少磁盘空间,那么你可能需要物理大小。
但是,如果你正在计算复制并且复制目标支持压缩,那么到底要使用物理大小吗? 现在假设源压缩算法和目标压缩算法具有可比性。
稀疏文件(Sparse files)稀疏文件与压缩文件有同样的问题。 你想累加的是逻辑大小或物理大小?
簇舍入(Cluster rounding)即使对于未压缩的非稀疏文件,你也可能需要考虑磁盘块的大小。 包含大量小文件的目录需要的磁盘空间比文件大小的总和还要多。 你想在计算中反映这一点吗? 如果遍历了重解析点,则簇大小也可能发生了变化。
备用数据流(Alternate data streams)备用数据流是文件可以占用磁盘空间的另一个地方,该空间未反映在其假定的“大小”中。
记录开销(Bookkeeping overhead)总是存在与文件存储相关的记录数据。 除了文件夹条目(或多个文件夹)之外,还需要为安全信息以及跟踪文件内容所在位置的信息分配空间。 对于高度碎片化的文件,此信息可能相当广泛。 你想把它计入目录的大小吗? 如果是这样,怎么做?
以上所有问题都没有单一的答案。 你必须考虑每一个因素,将其应用到你的情况,然后决定你想走哪条路。
(而且复制树形文件夹的结构更可怕。你用 ACL 做什么?你也想复制它们吗?你保留创建日期吗?这完全取决于你为什么要复制它。)
总结希望猿友看完此文后能有所启发电脑:文件夹里,除了普通的文件,还有各种各样,稀奇古怪的东西。
诸位,请提防提防!
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Computing the size of a directory is more than just adding file sizes》
电脑
相关阅读
-
-
win8显示文件夹大小-(win8显示文件夹大小怎么设置)
(win8显示文件夹大小怎么设置)有一天,上头来了一个活儿:我需要程序计算一个文件夹的大小。有朋友可能会觉着,这事儿忒简单,只需要将这个文件夹里的所有文件的大小累加起来不就是文件夹的大小了。如果它只是这样简...
2022-12-30
-
-
iso文件如何用u盘安装-(iso文件如何用u盘安装到电脑)
(iso文件如何用u盘安装到电脑)iso文件怎么用u盘安装系统,你知道具体应该怎么做吗?首先,我们的u盘应该先具备pe启动功能,然后才能给电脑装系统,现在我们先来给u盘装个pe启动,百度搜索电脑进入,直接点下载...
2022-12-30
-
-
内存卡做启动盘教程-(内存卡启动盘制作)
(内存卡启动盘制作)最近买了个新的开发板,原生的是Android操作系统,需要自己少个启动盘,制作Linux+QT操作系统。新的开发板带这个制作的源文件,要先把这个文件拷贝到虚拟机Ubunbtu的共享目录下。打开share文件下显示文件如下:打开文件夹命令:cdsd_fusingmakechmod777sd_fusing.sh电脑...
2022-12-30
-
-
win7找不到盘符-(win7没有盘符)
(win7没有盘符)有很多电脑用户都有自己的隐私,这些隐私有可能是一些图片、视频、日子等等,为了不被外人看到自己的隐私,我们可以隐藏盘符来实现,那么win7系统如何隐藏盘符呢?今天为大家分享系统隐藏盘符的操作步骤。隐藏盘符操作方法:1、打开界面:计算机/我的电脑--》右键管理--》存储--》磁盘管理。如图所示:2、选择更改磁盘路径:磁盘--》右键更改驱动器号和路径。如图所示:3、删除盘符:选中...
2022-12-30
-
-
win7通知区域图标透明-(win7通知栏图标透明了)
(win7通知栏图标透明了)使用win7系统的朋友,可能都喜欢设置各种各样的功能,如果你需要对win7系统的任务栏进行透明化设置,也不知道如何操作的话,可以参考下面和大家分享的一个方法。更多小白一键重装系统官网_让电脑小白也会用的win11/win10/win7一键重装系统软件!尽在小白系统官网系统:win7旗舰版电脑:华硕电脑1、首先我们在桌面空白处上鼠标右键,然后选择个性化...
2022-12-30
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除