Я пытаюсь скопировать один каталог на другой путь.
Я нашел этот метод, но он не копирует каталог, только поддиректории и файлы внутри него:Копировать каталог со всеми файлами и папками
string sourcedirectory = Environment.ExpandEnvironmentVariables("%AppData%\\Program");
foreach (string dirPath in Directory.GetDirectories(sourcedirectory, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(dirPath.Replace(sourcedirectory, folderDialog.SelectedPath));
}
foreach (string newPath in Directory.GetFiles(sourcedirectory, "*.*", SearchOption.AllDirectories))
{
File.Copy(newPath, newPath.Replace(sourcedirectory, folderDialog.SelectedPath), true);
}
Как я могу получить папку «Program» на выходе со всеми файлами и подпапок ?
Что вы имеете в виду «это не скопировать каталог "? Он, очевидно, копирует сам каталог - он не сможет скопировать подкаталоги и файлы, если каталог верхнего уровня не присутствовал в выводе. Вы имеете в виду, что он не копирует файлы в каталог верхнего уровня? Кажется, это похоже, просто сканирование кода. (Лично я предпочитаю рекурсивное решение, вместо того, чтобы полагаться на 'string.Replace()' или на другую манипуляцию, но код здесь выглядит достаточно разумным). –
@PeterDuniho Каталог «Программа» не создан, но файлы и папки внутри него копируются в пункт назначения. Мне нужно получить каталог «Программа» на выходе. – DotNet
Я считаю, что это дублированный вопрос. Посмотрите на решение MSDN этого вопроса (я думаю, что это последнее) - он должен скопировать все, включая сам каталог. [Копировать каталог C#] (http://stackoverflow.com/questions/58744/best-way-to-copy-the-entire-contents-of-a-directory-in-c-sharp) –