Como extrair apenas o diretório específico de um arquivo zip no C # .NET 4.5?

Eu tenho um arquivo zip com a seguinte estrutura interna:

file1.txt
directoryABC
    fileA.txt
    fileB.txt
    fileC.txt

Qual seria a melhor maneira de extrair arquivos da pasta "directoryABC" para um local de destino no disco rígido? Por exemplo, se o local de destino for "C: \ temp", seu conteúdo deverá ser:

temp
    directoryABC
        fileA.txt
        fileB.txt
        fileC.txt

Também em certas situações, eu gostaria de extrair apenas o conteúdo do "directoryABC" para que o resultado fosse:

temp
    fileA.txt
    fileB.txt
    fileC.txt

Como posso fazer isso usando as classes do System.IO.Compression no C # .NET 4.5?

questionAnswers(1)

yourAnswerToTheQuestion