Jak uzyskać rozmiar katalogu (pliki w katalogu) w C #?

Chcę być w stanie uzyskać rozmiar jednego z lokalnych katalogów za pomocą C #. Próbuję uniknąć następujących (pseudo podobny kod), chociaż w najgorszym przypadku będę musiał się na to zgodzić:

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

Zasadniczo, czy jest gdzieś Walk (), więc mogę przejść przez drzewo katalogów? Które zapisują rekursję przechodzenia przez każdy podkatalog.

questionAnswers(9)

yourAnswerToTheQuestion