Пример #1
0
        private static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            try
            {
                var culture = new CultureInfo(ConfigurationManager.AppSettings["Culture"]);

                CultureInfo.DefaultThreadCurrentCulture   = culture;
                CultureInfo.DefaultThreadCurrentUICulture = culture;
            }
            catch
            {
                // Ignored
            }


            var config = WatchManagerConfig.GetConfiguration();
            var logger = new ConsoleLogger();

            IWatchManager watchManager = new WatchManager(config, logger);

            watchManager.EnableWatching();

            while (true)
            {
                Console.ReadKey();
            }
        }
Пример #2
0
        public WatchManager(WatchManagerConfig config, ILogger logger)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _logger = logger;

            _watchers = config.Watchers
                        .Where(w => new DirectoryInfo(w.Path).Exists)
                        .Select(w => new FileSystemWatcher(w.Path))
                        .ToArray();

            _rules = config.Rules.ToDictionary(
                r => new Regex(r.Filter),
                r => string.IsNullOrEmpty(r.DestPath) ? config.Rules.DefaultDestPath : r.DestPath);

            _copyOptions    = config.CopyOptions;
            _dateTimeFormat = config.DateTimeFormat;

            foreach (var watcher in _watchers)
            {
                watcher.Created += FileDetected;
            }
        }