利用 Windows Scripting Runtime 的 Scripting.FileSystemObject,透過 COM 自動化直接取得資料夾 Size 屬性,遞迴計算由系統底層最佳化,比手寫遞迴快得多。
#include
Variant fs = Variant::CreateObject("Scripting.FileSystemObject");
Variant folder = fs.OleFunction("GetFolder", "D:\\Winnt"); // 目標路徑
ShowMessage(folder.OlePropertyGet("Size")); // 直接取得大小(位元組)