Это, конечно, не статья, а небольшая путевая заметка, но тем не менее. Так получилось, что 99% архивов попадают на мой компьютер, чтобы быть тут же распакованными, дабы добраться до их содержимого. И если в маке сафари сам это делает за меня, то в windows приходится каждый раз нажимать пункт в контекстном меню.
В какой-то момент мне это безумно надоело и я написал простой сервис, который распаковывает все самостоятельно. Мне он показался удобным и я решил поделиться с народом.
В системе есть сервис
Сервис смотрит за указаными папками и следит за созданием в них файлов с заданными расширениями(по умолчание rar и zip, задается параметром Extentions). Как только файл появился — запускается winrar(можно настроить и другой архиватор), который их распаковывает.
Настраивается все через конфиг monitors.cfg в формате ini файла
Конфиг можно править на лету, сервис сам подгружает из него изменения, ничего перезагружать не надо.
За файловой системой следим через FileSystemWatcher
Winrar запускается с ключами x -ad -o+ — распаковка в папку с таким же именем с заменой файлов.
В какой-то момент мне это безумно надоело и я написал простой сервис, который распаковывает все самостоятельно. Мне он показался удобным и я решил поделиться с народом.
Как это выглядит
В системе есть сервис
Сервис смотрит за указаными папками и следит за созданием в них файлов с заданными расширениями(по умолчание 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) {IncludeSubdirectories = true}))
- {
- watcher.Created += WatcherHandler;
- _watchers.Add(watcher);
- }
* This source code was highlighted with Source Code Highlighter.
Winrar запускается с ключами x -ad -o+ — распаковка в папку с таким же именем с заменой файлов.
Как установить
- Скачать и распаковать отсюда.
- Запустить install.bat из папки AE.Service под правами администратора. Он создаст сервис через sc create(кстати, кто-нибудь может мне ответить, почему я могу создавать/удалять сервисы только через командную строку?). А если хочется просто протестировать без установки, то есть простое консольное приложение в папке AE.Console.