@networkSolutions

Как копировать выбранные папки C#?

Необходимо копировать папки с файлами в них.
Например, есть функция:
void perebor_updates(string begin_dir, string end_dir)
        {
            DirectoryInfo dir_inf = new DirectoryInfo(begin_dir);
            foreach (DirectoryInfo dir in dir_inf.GetDirectories())
            {
                if (Directory.Exists(end_dir + "\\" + dir.Name) != true)
                {
                    Directory.CreateDirectory(end_dir + "\\" + dir.Name);
                }
                
                perebor_updates(dir.FullName, end_dir + "\\" + dir.Name);
            }

            foreach (string file in Directory.GetFiles(begin_dir))
            {
                string filik = file.Substring(file.LastIndexOf('\\'), file.Length - file.LastIndexOf('\\'));
                File.Copy(file, end_dir + "\\" + filik, true);
            }
        }

Мне необходимо идти не по всем директориям
foreach (DirectoryInfo dir in dir_inf.GetDirectories())

, а лишь по выбранным, то есть тем которые я передам в функцию.
Например, задана директория, в ней лежат папки с файлами, и я передаю в функцию только те папки которые хочу скопировать.
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
@Sumor
На входе IEnumerable или IEnumerable. Тогда:
void perebor_updates(IEnumerable<DirectoryInfo> dirs)
{
  foreach(var dir in dirs)
...
}

или
void perebor_updates(IEnumerable<string> dirNames)
{
  foreach(var name in dirNames)
  {
    var dir = new DirectoryInfo(name);
...
  {
...
}


А дальше у вас есть рекурсивная функция, принимающая одну папку в качестве параметра и выполняющая нужное действие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы