冰楓論壇

標題: [C#] 計算資料夾容量 [打印本頁]

作者: whitefox    時間: 2023-6-2 11:28
標題: [C#] 計算資料夾容量
一般計算一個資料夾容量大小用遞迴方式累加各個檔案容量大小
  1. public static void CalculateDirectorySize(string DirPath, ref long TotalSize)
  2. {
  3.     foreach (string p in Directory.EnumerateDirectories(DirPath))
  4.     {
  5.         CalculateDirectorySize(p, ref totalSize);
  6.     }
  7.     foreach (FileInfo fi in new DirectoryInfo(DirPath).EnumerateFiles())
  8.     {
  9.         TotalSize += fi.Length;
  10.     }
  11. }
複製代碼
還有另一個選擇使用Scripting.FileSystemObject,執行效率更高
  1. public static long CalculateDirectorySize(string DirPath)
  2. {
  3.     try
  4.     {
  5.         Type tp = Type.GetTypeFromProgID("Scripting.FileSystemObject");
  6.         object fso = Activator.CreateInstance(tp);
  7.         object fd = tp.InvokeMember("GetFolder", BindingFlags.InvokeMethod, null, fso, new object[] { DirPath });
  8.         long ret = Convert.ToInt64(tp.InvokeMember("Size", BindingFlags.GetProperty, null, fd, null));
  9.         Marshal.ReleaseComObject(fso);
  10.         return ret;
  11.     }
  12.     catch
  13.     {
  14.         return 0;
  15.     }
  16. }
複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓