Программная синхронизация содержимого двух папок - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Написал код где происходит сравнение 2х папок, теперь мне нужно сделать если папки не равны то из первой копировать те файлы которых не хватает во вторую! Как это сделать, есть ли у кого-то код?

Решение задачи: «Программная синхронизация содержимого двух папок»

textual
Листинг программы
static void SyncDir(string FromDir, string ToDir)
{
    Directory.CreateDirectory(ToDir);
 
    foreach (string s1 in Directory.GetFiles(ToDir))
    {
        string s2 = FromDir + "\\" + Path.GetFileName(s1);
        if (!File.Exists(s2))
        {
            Console.WriteLine("Deleting file^ {0}", s1); // закомментить если не нужен вывод в консоль либо заменить на вывод куда нужно
            File.Delete(s1);
        }
    }
 
    foreach (string s1 in Directory.GetFiles(FromDir))
    {
        string s2 = ToDir + "\\" + Path.GetFileName(s1);
        //Console.WriteLine(s1); // закомментить если не нужен вывод в консоль либо заменить на вывод куда нужно
        if (!File.Exists(s2))
        {
            File.Copy(s1, s2);
        }
        else
        {
            FileInfo fi1 = new FileInfo(s1);
            FileInfo fi2 = new FileInfo(s2);
            if (fi1.LastWriteTime != fi2.LastWriteTime)
            {
                File.Delete(s2);
                File.Copy(s1, s2);
                Console.WriteLine("Update file {0} from file {1}", s1, s2); // закомментить если не нужен вывод в консоль либо заменить на вывод куда нужно
            }
        }
    }
 
    foreach (string s in Directory.GetDirectories(FromDir))
    {
        SyncDir(s, ToDir + "\\" + Path.GetFileName(s));
        Console.WriteLine(s); // закомментить если не нужен вывод в консоль либо заменить на вывод куда нужно
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.625 из 5
Похожие ответы