Como criar uma função recursiva para copiar todos os arquivos e pastas

Eu estou tentando criar uma função que copiará recursivamente uma pasta de origem e todos os arquivos e pastas dentro dela para um local diferente.

No momento, tenho que definir cada pasta dentro da pasta principal, o que torna o código inchado e redundante.

O que é uma maneira mais eficiente de fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion