Перемещение файлов с переименованием при необходимости - C#
Формулировка задачи:
Есть каталог, с него нужно перемещать файлы в другой, но файла могут иметь одинаковое название, нужно при наличии занятого имени к примеру добавить (2), (3)....
Каталога назначения может не существовать (имя каталога создается из даты).
Мои успехи пока нулевые в этом деле.
Решение задачи: «Перемещение файлов с переименованием при необходимости»
textual
Листинг программы
using System; using System.Linq; using System.IO; namespace ConsoleApplication1 { class Program { static void SmartMove(string from, string to) { DirectoryInfo sourceDir = new DirectoryInfo(from); DirectoryInfo targetDir = new DirectoryInfo(to); if(!targetDir.Exists) targetDir.Create(); var filesInTargetDir = targetDir.GetFiles().Select(f => f.Name); foreach (FileInfo file in sourceDir.GetFiles()) { string fileName = file.Name; int i = 1; while (filesInTargetDir.Contains(fileName)) { i++; fileName = string.Format("{0} ({1}).{2}", Path.GetFileNameWithoutExtension(file.FullName), i, file.Extension); } file.MoveTo(Path.Combine(to, fileName)); } } static void Main(string[] args) { string sourcePath = "F:\\FilesToMove"; //Папка с исходными файлами string targetPath = Path.Combine("F:\", DateTime.Now.ToShortDateString()); //папка назначения SmartMove(sourcePath, targetPath); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д