- UID
- 390967
- 帖子
- 1650
- 主題
- 850
- 精華
- 0
- 積分
- 867
- 楓幣
- 12069
- 威望
- 407
- 存款
- 10100
- 贊助金額
- 1800
- 推廣
- 0
- GP
- 2788
- 閱讀權限
- 150
- 在線時間
- 196 小時
- 註冊時間
- 2023-5-18
- 最後登入
- 2024-12-17
|
一般計算一個資料夾容量大小用遞迴方式累加各個檔案容量大小- public static void CalculateDirectorySize(string DirPath, ref long TotalSize)
- {
- foreach (string p in Directory.EnumerateDirectories(DirPath))
- {
- CalculateDirectorySize(p, ref totalSize);
- }
- foreach (FileInfo fi in new DirectoryInfo(DirPath).EnumerateFiles())
- {
- TotalSize += fi.Length;
- }
- }
複製代碼 還有另一個選擇使用Scripting.FileSystemObject,執行效率更高- public static long CalculateDirectorySize(string DirPath)
- {
- try
- {
- Type tp = Type.GetTypeFromProgID("Scripting.FileSystemObject");
- object fso = Activator.CreateInstance(tp);
- object fd = tp.InvokeMember("GetFolder", BindingFlags.InvokeMethod, null, fso, new object[] { DirPath });
- long ret = Convert.ToInt64(tp.InvokeMember("Size", BindingFlags.GetProperty, null, fd, null));
- Marshal.ReleaseComObject(fso);
- return ret;
- }
- catch
- {
- return 0;
- }
- }
複製代碼 |
|