Аналогично вопросу, я копирую структуру папок из одного места назначения и дублирую ее в другое. Извините за публикацию в старой ветке, но это может быть полезно для кого-то, кто попал сюда.
Давайте предположим, что у нас есть отдельное приложение, и нам нужно скопировать структуру папок из папки Input в папку Output. Папка Input и папка Output находятся в корневом каталоге нашего приложения.
Мы можем сделать DirectoryInfo для папки Input (структура, которую мы хотим скопировать) следующим образом:
DirectoryInfo dirInput = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\Input\\");
Расположение нашей выходной папки может быть сохранено в виде строки.
string dirOutput = AppDomain.CurrentDomain.BaseDirectory + "\\Output\\";
Этот рекурсивный метод должен обрабатывать все остальное для нас.
public static void ProcessDirectories(DirectoryInfo dirInput, string dirOutput)
{
string dirOutputfix = String.Empty;
foreach (DirectoryInfo di in dirInput.GetDirectories())
{
dirOutputfix = dirOutput + "\\" + di.Name);
if (!Directory.Exists(dirOutputfix))
{
try
{
Directory.CreateDirectory(dirOutputfix);
}
catch(Exception e)
{
throw (e);
}
}
ProcessDirectories(di, dirOutputfix);
}
}
Этот метод может быть легко изменен для обработки файлов, но я разработал его с учетом только папок для своего проекта.
Теперь мы просто вызываем метод с нашими dirInput и dirOutput.
ProcessDirectories(dirInput, dirOutput);