Сортировка файлов по папкам - C# (184492)

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

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

Решил навести порядок в папке, отсортировав файлы по датам.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. namespace fileSorter01
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. // путь - где будет проходить сортировка
  12. string directory = @"D:\Test";
  13. List<string> date = new List<string>();
  14. //собираю инфу о файлах в список
  15. var fileInfos =
  16. new DirectoryInfo(directory)
  17. .GetFiles("*.*", SearchOption.AllDirectories)
  18. .ToList();
  19. // добавляю в список date будущие названия файлов
  20. fileInfos.ForEach(f => date.Add(
  21. (f.CreationTime < f.LastWriteTime)
  22. ? f.CreationTime.ToString("dd_MM_yyyy")
  23. : f.LastWriteTime.ToString("dd_MM_yyyy")));
  24. // удаляю повторы
  25. date = date.Distinct().ToList();
  26. // создаю папки
  27. date.ForEach(f =>
  28. {
  29. if (!Directory.Exists(string
  30. .Format(@"{0}\{1}", directory, f)))
  31. {
  32. Directory.CreateDirectory(string
  33. .Format(@"{0}\{1}", directory, f));
  34. Console.WriteLine(string
  35. .Format("Была создана папка: {0}", f));
  36. }
  37. });
  38. // перемещаю файлы в эти папки
  39. foreach (var f0 in fileInfos)
  40. foreach (var f1 in date)
  41. if (f0.CreationTime.ToString("dd_MM_yyyy") == f1
  42. || f0.LastWriteTime.ToString("dd_MM_yyyy") == f1)
  43. if (!File.Exists(string
  44. .Format(@"{0}\{1}\{2}", directory, f1, f0.Name)))
  45. {
  46. {
  47. File.Move(f0.FullName, string.Format(@"{0}\{1}\{2}", directory, f1, f0.Name));
  48. Console.WriteLine(string
  49. .Format("Фаил {0}, был перемещен в папку {1}", f0.Name, f1));
  50. }
  51. }
  52. Console.ReadKey();
  53. }
  54. }
  55. }
Нужна помощь в вопросе:

Какие проблемы могут возникнуть?,

так сказать чтобы сортировка прошла удачно =) Потестил, всё работает нормально. Проверку на существования файла, конечно можно добавить, это даже нужно, а вот еще что может пойти не так?

Решение задачи: «Сортировка файлов по папкам»

textual
Листинг программы
  1. string directory = @"D:\Test";
  2. foreach (var fi in new DirectoryInfo(directory).EnumerateFiles("*.*", SearchOption.AllDirectories))
  3. {
  4.     string folderDate = (fi.CreationTime < fi.LastWriteTime ? fi.CreationTime : fi.LastWriteTime).ToString("dd_MM_yyyy");
  5.     string newPath = directory + "\\" + folderDate;
  6.    
  7.     if (!Directory.Exists(newPath))
  8.     {
  9.         Directory.CreateDirectory(newPath);
  10.         Console.WriteLine("Была создана папка: {0}", newPath);
  11.     }
  12.    
  13.     newPath += "\\" + fi.Name;
  14.     File.Move(fi.FullName, newPath);
  15.     Console.WriteLine("Файл {0}, был перемещен в папку {1}", fi.FullName, newPath);
  16. }

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


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

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

10   голосов , оценка 4.4 из 5

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

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

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