FolderSize
Using LINQ, gets the total size of a specified folder. It can also check sizes of subdirectory under it as a parameter.
Source
using System.IO;
public static class MyExtension
{
public static long FolderSize(this DirectoryInfo dir, bool bIncludeSub)
{
long totalFolderSize = 0;
if (!dir.Exists) return 0;
var files = from f in dir.GetFiles()
select f;
foreach (var file in files) totalFolderSize += file.Length;
if (bIncludeSub)
{
var subDirs = from d in dir.GetDirectories()
select d;
foreach (var subDir in subDirs) totalFolderSize += FolderSize(subDir, true);
}
return totalFolderSize;
}
}
Example
path = @"D:\INCOMING\Books";
var size = new DirectoryInfo(path).FolderSize(true);
Console.WriteLine("Size of {0} is {1}", path, size);
// you can format the size return by using my other extension method, FormatSize()
// var size = new DirectoryInfo(path).FolderSize(true).FomatSize();