Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - lelity -

C# - Файлы и папки

Все примеры / Файлы и папки

Рекурсивное копирование фалов из указанных папок

Автор: lelity | добавлено: 21.10.2011, 23:33 | просмотров: 8830 (1+) | комментариев: 0 | рейтинг: *x10
Пример программы на C#, которая рекурсивно копирует файлы в указанные папки. При отсутствии нужных папок, программа их создает.

Код

using System;
using System.IO;

class CopyDir
{
  // Метод копирования: задаем две директории откуда копировать и куда копировать
  public static void Copy(string sourceDirectory, string targetDirectory)
  {
    DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
    DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
    // Вызываем основной метод копирования
    CopyAll(diSource, diTarget);
  }

  public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
  {
    // Если директория для копирования файлов не существует, то создаем ее
    if (Directory.Exists(target.FullName) == false)
    {
      Directory.CreateDirectory(target.FullName);
    }

    // Копируем все файлы в новую директорию
    foreach (FileInfo fi in source.GetFiles())
    {
      // Выводим информацию о копировании в консоль
      Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
      fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
    }

    // Копируем рекурсивно все поддиректории
    foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
    {
      // Создаем новую поддиректорию в директории
      DirectoryInfo nextTargetSubDir =
        target.CreateSubdirectory(diSourceSubDir.Name);
      // Опять вызываем функцию копирования
      // Рекурсия
      CopyAll(diSourceSubDir, nextTargetSubDir);
    }
  }

  // Проверяем работу копирования на примере
  public static void Main()
  {
    string sourceDirectory = @"c:\sourceDirectory";
    string targetDirectory = @"c:\targetDirectory";

    Copy(sourceDirectory, targetDirectory);
  }
}
Об авторе

lelity

Нет информации об авторе...
lelity
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики