Пример #1
0
        protected virtual void OnRaiseItemAdded(DirectoryItemAddedEventArgs args)
        {
            // TODO: Only raise the event if the item/s matches watch pattern.
            var matches = GetMatchingFilters(args.NewItem.Path).ToArray();

            if (matches.Length > 0)
            {
                var watcherArgs = new DirectoryWatcherFilterMatchedEventArgs <DirectoryItemAddedEventArgs>(args, matches);
                EventHandler <DirectoryWatcherFilterMatchedEventArgs <DirectoryItemAddedEventArgs> > handler = ItemAdded;
                handler?.Invoke(this, watcherArgs);
            }
        }
Пример #2
0
        protected virtual void OnRaiseItemUpdated(DirectoryItemUpdatedEventArgs args)
        {
            // Only raise the event if the old or new item (i.e file or folder could have been renamed)
            // matches a pattern.
            var newItemMatches = GetMatchingFilters(args.NewItem.Path).ToArray();
            var oldItemMatches = GetMatchingFilters(args.OldItem.Path).ToArray();
            var unionMatches   = newItemMatches.Union(oldItemMatches).ToArray();

            if (unionMatches.Length > 0)
            {
                var watcherArgs = new DirectoryWatcherFilterMatchedEventArgs <DirectoryItemUpdatedEventArgs>(args, unionMatches);
                EventHandler <DirectoryWatcherFilterMatchedEventArgs <DirectoryItemUpdatedEventArgs> > handler = ItemUpdated;
                handler?.Invoke(this, watcherArgs);
            }
            ;
        }