Возникли проблемы с копированием файлов, выходящих за пределы корневого уровня, при сохранении структуры папок

Этот код не вызывает проблем с копированием всех файлов, находящихся в каталоге. Но он не поддерживает структуру папок, а только копирует файлы. Есть идеи, что мне нужно изменить, чтобы сохранить структуру папок?

string server = cbServer.SelectedItem.ToString();
string input = "\\\\" + server + "\\F\\Input";

string folderPath = txtPath.Text;

foreach (var file in System.IO.Directory.GetFiles(folderPath, "*", SearchOption.AllDirectories))
    File.Copy(file, System.IO.Path.Combine(input, Path.GetFileName(file)), true);

person Jimmy K    schedule 13.05.2014    source источник
comment
Я смотрел на это. Я просто очень близко здесь и надеялся, что это было что-то простое ... как всегда кажется. Это тоже 4.5, и я, к сожалению, работаю с 2008 годом.   -  person Jimmy K    schedule 14.05.2014
comment
Подождите, вы считаете код в MSDN How-To не таким простым? А как вы думаете, почему именно 4.5 конкретно? Это не...   -  person    schedule 14.05.2014


Ответы (1)


Вы не имеете дело с папками, вы просто рекурсивно копируете файлы в целевой каталог.

Вы можете сделать это, в основном отсюда: Как лучше всего скопировать папку, все подпапки и файлы с помощью C #

static void Main(string[] args)
{

    string source = @"C:\Users\Yaron.Fainstein\Desktop\z1";

    string target = @"C:\Users\Yaron.Fainstein\Desktop\z1-out";

    CopyFolder(new DirectoryInfo(source), new DirectoryInfo(target));

/*foreach (var file in System.IO.Directory.GetFiles(source, "*", SearchOption.AllDirectories))
{

File.Copy(file, System.IO.Path.Combine(target, Path.GetFileName(file)), true);
}*/
} 

public static void CopyFolder(DirectoryInfo source, DirectoryInfo target) {
    foreach (DirectoryInfo dir in source.GetDirectories())
    CopyFolder(dir, target.CreateSubdirectory(dir.Name));
    foreach (FileInfo file in source.GetFiles())
    file.CopyTo(Path.Combine(target.FullName, file.Name));
}
person Noctis    schedule 13.05.2014
comment
Да, хотелось бы, чтобы я наткнулся на ваше связанное решение. Проблема решена. Спасибо, Ноктис! - person Jimmy K; 14.05.2014
comment
Не волнуйся, рад, что смог помочь. Я надеюсь, что вы извлечете из этого 1. поиск своего вопроса, прежде чем спрашивать, и 2. Файлы и папки - разные животные, и вам нужно знать, что ты имеешь дело с :) - person Noctis; 14.05.2014
comment
Я действительно пробовал искать. Потратил час на поиски, приношу свои извинения за повторение. - person Jimmy K; 14.05.2014