0
有誰知道如何計算文件系統佔用的空間量?在Windows中計算NTFS和FAT文件系統大小
我想計算多少空間文件和目錄在一個磁盤中佔用,而無需遍歷整個磁盤。
這是C++中的示例:
ULARGE_INTEGER freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes;
GetDiskFreeSpaceEx(NULL, &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes);
mCurrentProgress = 0;
mTotalProgress = totalNumberOfBytes.QuadPart - totalNumberOfFreeBytes.QuadPart;
但問題是,我需要排除的文件系統的大小,但我不知道是否有可能或有一個API來獲取這個信息。
我敢肯定,這是不可能的。我也沒有看到許多這種功能的真實世界用例。 –
請定義「文件系統的大小」。你只計算MFT,目錄索引等,還是其他的東西?那麼大多數文件的最後一個集羣中未使用的空間呢?你是否對文件或文件系統計數?根據你的定義,這可能是不可能的,正如douphic指出的那樣。 –
我們實際上正在編寫一個功能來調查磁盤中的所有用戶文件,並且需要爲操作提供進度信息,因爲它可能非常冗長。 我們不能通過整個磁盤(文件夾和文件)首先迭代計算數據的大小。這太耗費時間... 上面的代碼並不排除任何導致進度的文件系統,特別是在NTFS上,它與真實情況相差甚遠。 關閉我們可以得到所有用戶數據文件佔用的真實金額空間越好。 – user3608906