예제 #1
0
 /// <summary>
 /// Вычислить размер папки.
 /// </summary>
 /// <param name="directory"></param>
 /// <returns></returns>
 public static long CalculateFolderSize(DirectoryInfo directory)
 {
   var foldersContainer = new Stack<DirectoryInfo>();
   long calculatedSize = 0;
   foldersContainer.AddFolders(new[] { directory });
   while (foldersContainer.Any())
   {
     var currentFolder = foldersContainer.Pop();
     foldersContainer.AddFolders(currentFolder.GetDirectories());
     calculatedSize += currentFolder.GetFiles().Sum(fileInfo => fileInfo.Length);
   }
   return calculatedSize;
 }