Спрощуємо життя сервіс авторапакування архівів на C#

Якоїсь миті мені це шалено набридло і я написав простий сервіс, який розпаковує все самостійно. Мені він здався зручним, і я вирішив поділитися з народом.

Як це виглядає

У системі є сервіс

сервіс

Сервіс стежить за вказаними папками і стежить за створенням у них файлів із заданими розширеннями (за умовчаннямrarіzip, задається параметромExtentions). Як тільки файл з'явився – запускається winrar (можна налаштувати й інший архіватор), який розпаковує їх.

Як це працює

Налаштовується все через конфігmonitors.cfgу форматі ini файлу [WinRar] c:\Program Files\WinRAR\WinRAR.exe

[Folders] c:\downloads c:\distrib Конфіг можна правити на льоту, сервіс сам підвантажує з нього зміни, нічого перезавантажувати не треба.

За файловою системою слідкуємо черезFileSystemWatcher

  1. foreach (var watcher in monitoringFolders.Where( Directory .Exists).Select(folder => new FileSystemWatcher(folder) ))
  2. watcher.Created += WatcherHandler;
  3. _watchers.Add(watcher);
  4. >
* Цей source code був highlighted with Source Code Highlighter.

Winrar запускається з ключамиx -ad -o+— розпакування в папку з таким самим ім'ям із заміною файлів.