[英]Finding actual size of a folder in Windows
在我的 Windows 計算機家庭桌面上,我右鍵單擊屬性下的 C:\\Windows 文件夾,它顯示:
如果我使用Microsoft sysinternals提供的du工具
du C:\Windows
這產生
Files: 77060
Directories: 21838
Size: 31,070,596,369 bytes
Size on disk: 31,151,837,184 bytes
如果我以管理員身份運行相同的命令
Files: 77894
Directories: 22220
Size: 32,223,507,961 bytes
Size on disk: 32,297,160,704 bytes
以管理員身份運行 Powershell ISE 后,我從這個SO 答案中運行了以下 powershell 片段
"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"
哪個輸出
22,486.11 MB
以管理員身份運行的命令提示符中的以下SO 答案中的 C# 代碼返回:
35,163,662,628 bytes
盡管關閉它仍然顯示與 Windows 資源管理器不同。 因此,這些方法都沒有返回目錄的實際大小。 所以我的問題是這個。
是否有腳本或編碼方法可以返回 C:\\Windows 的實際文件夾大小
如果無法檢索文件夾大小,是否可以通過編程方式檢索 Windows 資源管理器顯示的信息?
當談到 Windows 時,他們有一種奇怪的實際存儲數據的方式,例如,雖然一個文件的大小可能為 1mb,但當存儲在磁盤上時,它可能會是 1.1mb,原因是它包含指向實際數據的目錄鏈接文件在光盤上,並且估計大小不包括可能的附加數據窗口存儲以及相關數據。
現在您可能在想,這很好,但是當您從管理員查看文件大小時,您如何解釋巨大的大小變化,這是一個很好的問題,因為這是與文件一起存儲的另一個額外的標頭/元數據只有管理員才能看到。
回到你關於告訴文件的實際大小的原始問題,對於 Windows 來說很難說,因為它與所需文件一起使用的附加數據量很大,但出於可讀性目的,或者如果你正在使用它對於某種形式的編碼,我建議使用 admin 命令查找磁盤上的大小,不是因為文件似乎已達到其最大大小(對我而言是),而是因為通常當您要傳輸時,這可能是您可以使用的最可靠的數字,因為一旦您傳輸文件,一些額外的數據將被刪除或更改,並且您已經知道文件大小差異的可能變化。
此外,您還必須考慮硬盤驅動器格式(NTFS、fat32),因為它是如何分段文件的,因為如果文件很大,也可能會稍微改變文件大小。 1GB++
希望這能幫助 mate,因為我們都知道在嘗試獲取信息時窗口是多么美妙(嘆氣)。
歧義和差異與連接、軟鏈接和硬鏈接(如果您來自 *nix 世界,則類似於符號鏈接)有很大關系。 最大的問題:幾乎沒有 Windows 程序能很好地處理硬鏈接——它們看起來(而且確實是)“普通”文件。 Windows 中的所有文件都有 1 個以上的硬鏈接。
您可以使用Sysinternals Disk Usage 實用程序獲得“真實”磁盤存儲的指示
> du64 c:\\windows
我的機器上的產量:
DU v1.61 - Directory disk usage reporter
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Files: 204992
Directories: 57026
Size: 14,909,427,806 bytes
Size on disk: 15,631,523,840 bytes
這比右鍵單擊並在屬性對話框中獲取大小時看到的要小得多。 默認情況下, du64
不會對具有多個硬鏈接的文件進行雙重計數——它返回已使用的真實磁盤空間。 這也是為什么這個命令需要一段時間來處理。 您可以使用-u
選項讓磁盤使用實用程序天真地計算所有鏈接的大小。
> du64 -u c:\windows
DU v1.61 - Directory disk usage reporter
Copyright (C) 2005-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Files: 236008
Directories: 57026
Size: 21,334,850,784 bytes
Size on disk: 22,129,897,472 bytes
這要大得多——但它是重復計算的文件,其中有多個鏈接指向相同的存儲空間。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.