Используйте Directory.Create для создания каталогов:
Directory.Create("c:\mytempFolder\driveC\New Folder");
и для создания файлов вам нужно будет написать текстовый файл в это место, например:
File.Create("D:\New Folder\a.txt").Close;
(возвращает FileSream, поэтому не забудьте закрыть его позже, или вы заблокируете файл)
EDIT:
Хорошо, я понимаю, что вы имеете в виду. В этом случае вам нужно сделать что-то вроде этого:
Зациклить все файлы в каталоге и его подкаталогах
и когда вы столкнетесь с файлом или папкой, вам нужно будет создать его в целевой папке (например, c: \ mytempFolder) с помощью приведенных выше команд. Чтобы получить диск, вы можете просто получить первый символ в строке пути (при условии, что у него всегда будет буква диска).
Вот простой способ сделать это, но вам может понадобиться настроить его для учета несоответствий пути к файлу:
string targetPath = @"C:\mytempFolder\";
string path = @"D:\New Folder\a.txt";
char driveLetter = path[0];
string filePath = path.SubString(3);
string newFilePath = Path.Combine(targetPath, Path.Combine(String.Format("drive{0}", driveLetter.ToString()), filePath));