1) c# è trattato in un suo subforum (visualbasic e net framework)
2) il codice si posta con i tag code
3) più semplicemente fai così..

codice:
        static void Main(string[] args)
        {
            string path_iniziale = "...";

            DirectoryInfo root_folder = new DirectoryInfo(path_iniziale);

        }

        public void copiaSottocartelle(DirectoryInfo info)
        {
            FileInfo[] file = info.GetFiles();
            DirectoryInfo[] directory = info.GetDirectories();

            foreach (FileInfo var in file)
            {
                var.CopyTo(info.FullName + "\\" + var.Name);
            }

            foreach (DirectoryInfo var in directory)
            {
                Directory.CreateDirectory(info.FullName + "\\" + var.Name);
                copiaSottocartelle(var);
            }
        }