Como faço para obter um tamanho de diretório (arquivos no diretório) em c #?

Eu quero ser capaz de obter o tamanho de um dos diretórios locais usando c #. Eu estou tentando evitar o seguinte (pseudo como código), embora na pior das hipóteses eu vou ter que se contentar com isso:

    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;
    }

Basicamente, existe um Walk () disponível em algum lugar para que eu possa percorrer a árvore de diretórios? Que salvaria a recursão de passar por cada subdiretório.

questionAnswers(9)

yourAnswerToTheQuestion