internal void Subscribe(FileSubscriber subscriber, bool notified = true) { if (subscriber.Checked && !String.IsNullOrWhiteSpace(subscriber.Path)) { if (_listWather.FirstOrDefault(f => f.Key == subscriber).Key != null) { return; } FileInfo fileInfo = new FileInfo(subscriber.Path); FileSystemWatcher watcher = new FileSystemWatcher(fileInfo.DirectoryName, fileInfo.Name) { NotifyFilter = NotifyFilters.LastWrite }; _listSubscriber.Add(fileInfo, subscriber); watcher.Changed += Subscribe_Changed; watcher.EnableRaisingEvents = true; _listWather.Add(subscriber, watcher); using (Versions versions = new Versions() { SubscriberInfo = fileInfo, Subscriber = subscriber }) { versions.CreateDirectoryVersion(); } _callUpdate.NeedNotified = notified; _callUpdate.Call(subscriber); } }