Спрощуємо життя сервіс авторапакування архівів на C#
Якоїсь миті мені це шалено набридло і я написав простий сервіс, який розпаковує все самостійно. Мені він здався зручним, і я вирішив поділитися з народом.
Як це виглядає
У системі є сервіс

Сервіс стежить за вказаними папками і стежить за створенням у них файлів із заданими розширеннями (за умовчаннямrarіzip, задається параметромExtentions). Як тільки файл з'явився – запускається winrar (можна налаштувати й інший архіватор), який розпаковує їх.
Як це працює
Налаштовується все через конфігmonitors.cfgу форматі ini файлу [WinRar] c:\Program Files\WinRAR\WinRAR.exe
[Folders] c:\downloads c:\distrib Конфіг можна правити на льоту, сервіс сам підвантажує з нього зміни, нічого перезавантажувати не треба.
За файловою системою слідкуємо черезFileSystemWatcher
- foreach (var watcher in monitoringFolders.Where( Directory .Exists).Select(folder => new FileSystemWatcher(folder) ))
- watcher.Created += WatcherHandler;
- _watchers.Add(watcher);
- >
Winrar запускається з ключамиx -ad -o+— розпакування в папку з таким самим ім'ям із заміною файлів.