Skip to content

Ang2Tea/FileSorting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileSorting

Оглавление

  1. Цель проекта
  2. Элементы библиотеки
  3. Элементы консольного приложения

Цели проекта

Предоставить пользователю

  • Встраиваемую библиотеку для использования в своих проектах;
  • Настраиваемый процесс сортировки;
  • Простое приложения для сортировки файлов с настройкой через json файл.

Элементы библиотеки

Класс FilesSorting

Главный класс библиотеки. Находтися в пространсве именн имен FileSorting.Core

Конструкторы

Имеет 2 конструктор

  • FilesSorting(ISortingConfig config, ILogger log)
    config - класс конфигурации реалезующий интерфейс ISortingConfig,
    log - класс для вывода информации хода работы реалезующий интерфейс ILogger
  • FilesSorting(ISortingConfig config)
    config - класс конфигурации реалезующий интерфейс ISortingConfig,

Методы

  • void StartMovingFile()
    Начитанает сортировку файлов

Интерфейс ISortingConfig

Нужен для создания различный реалезаций своих конфигурации. Находтися в пространсве имен FileSorting.Core.Configs

Свойства

  • string SortingPath
    Содержит в себе путь к папке в которой нужно отсортировать
  • ChangeNameState ChangeState Сожержит в себе состояние которое будет реалезоваться при файлы в папку с занятым именем

Класс StandartConfig

Реалезация интерфейса ISortingConfig, имеет настройку свойств с помощью атрибута JsonPropertyName и конструктор которые принимают все пораметры для заполнения свойств ISortingConfig. Находтися в пространсве имен FileSorting.Core.Configs

Перечисление ChangeNameState

Перечисления состояний перемещения файлы. Отчет свойсв начинается с 1. Находтися в пространсве имен FileSorting.Core.Configs

  • Exception
  • Change
  • Ignoring

Интерфейс ILogger

Нужен для создания различный реалезаций отоброжения хода работы. Находтися в пространсве имен FileSorting.Logging

Методы

  • void InfoLog(string message)
    message - строка которая будет выведена в вашей реалезации ILogger

  • void ErrorLog(string message)
    message - строка которая будет выведена в вашей реалезации ILogger

Класс DebugLogger

Реалезация интерфейса ILogger, выводит полученные сообщения с помощью статического класса Debug. Находтися в пространсве имен FileSorting.Logging.SpecificLogger

Класс NameTakenException

Класс ошибки вызываемой при ChangeNameState.Exception и уже имеющемся файле с таким именем в папке. Находтися в пространсве имен FileSorting.Core.Exceptions

Конструкторы

  • NameTakenException(FileInfo file, string? message)
    file - файл в котором была вызвана ошибка
    message - текст ошибки
  • NameTakenException(FileInfo file)
    file - файл в котором была вызвана ошибка

Свойства

  • FileInfo File
    Содержит в себе файл в котором произошла ошибка

Элементы библиотеки

Класс ConsoleLogger

Явяется классом реалезующий интерфейс ILogger из библиотеки, нужен для предаставления вывода информации хода приложения в консоль. Находтися в пространсве именн имен FileSortingConsole

Класс ConfigParser<T>

Класс позволяющий распарсить json по указанному пути. T обощение ограниченое по интерфейсу ISortingConfig

Конструктор

  • ConfigParser(string configPath)
    configPath - строка к пути нахождения json файла
  • ConfigParser()
    Пустой конструктор задающий строку как "config.json"

Методы

  • ISortingConfig Parse()
    Метод читающий файл по заданому пути и переводит его в обьект T реалезующий интерфейс ISortingConfig
  • static ISortingConfig Parse<TConfig>(string configPath)
    Метод читающий файл по заданому пути и переводит его в обьект TConfig реалезующий интерфейс ISortingConfig
    configPath - путь к json файлу

Класс NullConfigException

Класс вызываемый если при парсенге конфигурации вернулся null

About

Repository for sorting files

Topics

Resources

Stars

Watchers

Forks

Languages