在 Windows 中查找文件夹的实际大小

Bru*_*uno 6 windows filesystems directory

在我的 Windows 计算机家庭桌面上,我右键单击属性下的 C:\Windows 文件夹,它显示:

在此处输入图片说明

如果我使用Microsoft sysinternals提供的du工具

du C:\Windows
Run Code Online (Sandbox Code Playgroud)

这产生

Files:        77060
Directories:  21838
Size:         31,070,596,369 bytes
Size on disk: 31,151,837,184 bytes
Run Code Online (Sandbox Code Playgroud)

如果我以管理员身份运行相同的命令

Files:        77894
Directories:  22220
Size:         32,223,507,961 bytes
Size on disk: 32,297,160,704 bytes
Run Code Online (Sandbox Code Playgroud)

以管理员身份运行 Powershell ISE 后,我从这个SO 答案中运行了以下 powershell 片段

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"
Run Code Online (Sandbox Code Playgroud)

哪个输出

22,486.11 MB
Run Code Online (Sandbox Code Playgroud)

以管理员身份运行的命令提示符中的以下SO 答案中的 C# 代码返回:

35,163,662,628 bytes
Run Code Online (Sandbox Code Playgroud)

尽管关闭它仍然显示与 Windows 资源管理器不同。因此,这些方法都没有返回目录的实际大小。所以我的问题是这个。

是否有脚本或编码方法可以返回 C:\Windows 的实际文件夹大小

如果无法检索文件夹大小,是否可以通过编程方式检索 Windows 资源管理器显示的信息?

小智 2

当谈到Windows时,他们有一种奇怪的实际存储数据的方式,例如,虽然一个文件的大小可能是1mb,但当存储在光盘上时,它可能会是1.1mb,原因是其中包含指向实际文件的目录链接光盘上的文件,并且估计大小不包括可能的附加数据窗口存储与相关数据。

现在您可能会想,这很好,但是当您从管理员查看文件大小时,如何解释巨大的大小变化,这是一个很好的问题,因为这是与文件一起存储的另一个附加标头/元数据仅允许管理员查看。

回到关于告诉文件的实际大小的最初问题,对于 Windows 来说这很难说,因为它与所需文件结合使用的附加数据量很大,但出于可读性目的或者如果您正在使用此文件对于某种形式的编码,我建议使用管理命令查找磁盘上的大小,不是因为文件似乎达到了最大大小(对我来说是),而是因为通常当您想要传输时,这可能是您可以使用的最可靠的数字,因为一旦您传输文件,一些附加数据将被删除或更改,并且您已经知道文件大小差异可能会发生什么。

此外,您还必须考虑硬盘驱动器格式(NTFS、fat32),因为它如何分段文件,因为如果文件很大,即,它也会稍微改变文件大小。1GB++

希望这对伙伴有帮助,因为我们都知道在尝试获取信息时窗口是多么美妙(叹气)。