Перемещение файлов с переименованием при необходимости - C#

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

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

Есть каталог, с него нужно перемещать файлы в другой, но файла могут иметь одинаковое название, нужно при наличии занятого имени к примеру добавить (2), (3).... Каталога назначения может не существовать (имя каталога создается из даты). Мои успехи пока нулевые в этом деле.

Решение задачи: «Перемещение файлов с переименованием при необходимости»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.IO;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void SmartMove(string from, string to)
  10.         {
  11.             DirectoryInfo sourceDir = new DirectoryInfo(from);
  12.             DirectoryInfo targetDir = new DirectoryInfo(to);
  13.  
  14.             if(!targetDir.Exists) targetDir.Create();
  15.  
  16.             var filesInTargetDir = targetDir.GetFiles().Select(f => f.Name);
  17.             foreach (FileInfo file in sourceDir.GetFiles())
  18.             {
  19.                 string fileName = file.Name;
  20.                 int i = 1;
  21.                 while (filesInTargetDir.Contains(fileName))
  22.                 {
  23.                     i++;
  24.                     fileName = string.Format("{0} ({1}).{2}", Path.GetFileNameWithoutExtension(file.FullName), i, file.Extension);
  25.                 }
  26.                 file.MoveTo(Path.Combine(to, fileName));
  27.             }
  28.         }
  29.         static void Main(string[] args)
  30.         {
  31.             string sourcePath = "F:\\FilesToMove";                  //Папка с исходными файлами
  32.             string targetPath = Path.Combine("F:\", DateTime.Now.ToShortDateString());   //папка назначения
  33.            SmartMove(sourcePath, targetPath);
  34.            Console.ReadKey();
  35.        }
  36.    }
  37. }

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


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

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

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы