¿Cómo obtengo un tamaño de directorio (archivos en el directorio) en C #?

Quiero poder obtener el tamaño de uno de los directorios locales usando C #. Estoy tratando de evitar lo siguiente (pseudo como código), aunque en el peor de los casos tendré que conformarme con esto:

    int GetSize(Directory)
    {
        int Size = 0;

        foreach ( File in Directory )
        {
            FileInfo fInfo of File;
            Size += fInfo.Size;
        }

        foreach ( SubDirectory in Directory )
        {
            Size += GetSize(SubDirectory);
        }
        return Size;
    }

Básicamente, ¿hay un Walk () disponible en algún lugar para que pueda recorrer el árbol de directorios? Lo que ahorraría la recursión de ir a través de cada subdirectorio.

Respuestas a la pregunta(9)

Su respuesta a la pregunta