DirectoryInfo - GetSize

A DirectoryInfo extension method that gets a size.

Try it

public static string DirectoryName = "Main Directory";

public static void Main()
{
	CreateFilesAndDirectories();
	
	//C# Extension Method - DirectoryInfo - GetSize
	var size = DirectoryName.ToDirectoryInfo().GetSize();
	
	Console.WriteLine("Directory Size: {0}", size);
}

private static void CreateFilesAndDirectories()
{
	DirectoryName.ToDirectoryInfo().Create();
	DirectoryName.ToDirectoryInfo().CreateSubdirectory("Entity Framework");
	DirectoryName.ToDirectoryInfo().CreateSubdirectory(".Net Framework");
	DirectoryName.ToDirectoryInfo().CreateSubdirectory("Java");
	DirectoryName.ToDirectoryInfo().CreateSubdirectory("SQL");
	string file1 = DirectoryName + "\\EntityFramework.txt";
    string file2 = DirectoryName + "\\oldTest.txt";
    file1.ToFileInfo().WriteAllText("EF text");
    file2.ToFileInfo().WriteAllText("text");
}

View Source
using System.IO;
using System.Linq;

public static partial class Extensions
{
    /// <summary>
    ///     A DirectoryInfo extension method that gets a size.
    /// </summary>
    /// <param name="this">The @this to act on.</param>
    /// <returns>The size.</returns>
    public static long GetSize(this DirectoryInfo @this)
    {
        return @this.GetFiles("*.*", SearchOption.AllDirectories).Sum(x => x.Length);
    }
}