public void Dispose() { if (!IsDisposing) { IsDisposing = true; Status = IndexStatus.Disposing; TokenSource.Cancel(); TokenSource.Dispose(); FilesWatcher?.Dispose(); IndexBuilder?.Dispose(); Status = IndexStatus.Disposed; } }
static void Main() { var settings = (FileWatcherSettingSection)ConfigurationManager.GetSection("FileWatcherSetting"); List <string> directories = settings.ListeningFolders.ToList(); List <FileMovingRule> rules = settings.MovingRules.ToList(); Thread.CurrentThread.CurrentUICulture = new CultureInfo(settings.Localization.Culture); FilesWatcher fw = new FilesWatcher(directories, rules, "D:/logs/"); fw.FileFoundEvent += (sender, eventArgs) => Console.WriteLine($@"{messages.FileFound} {eventArgs.FileName}"); fw.FileMovedEvent += (sender, eventArgs) => Console.WriteLine($@"{messages.FileMoved} {eventArgs.Directory}"); fw.RuleCheckedEvent += (sender, eventArgs) => Console.WriteLine($@"{messages.RuleMatch} {eventArgs.IsMatched}"); fw.FileAlreadyExistsEvent += (sender, eventArgs) => Console.WriteLine($@"{messages.FileExists} {eventArgs.Directory}"); fw.StartWatch(); Console.Read(); }