void OnDeleted(object sender, FileSystemEventArgs e)
        {
            var path = GetVirtualPath(e.FullPath);

            if (path.IsDirectory)
            {
                directoryNameSet.Remove(path.EntityName);
            }

            RaiseChanged(FileSystemChange.FromDeleted(path));
        }
예제 #2
0
        void OnChanged(object sender, FileSystemChange e)
        {
            switch (e.ChangeType)
            {
            case WatcherChangeTypes.Created:
                if (e.NewPath.ParentPath == path)
                {
                    RaiseChanged(e);
                }
                break;

            case WatcherChangeTypes.Changed:
                if (e.NewPath.ParentPath == path)
                {
                    RaiseChanged(e);
                }
                break;

            case WatcherChangeTypes.Deleted:
                if (e.OldPath.ParentPath == path)
                {
                    RaiseChanged(e);
                }
                break;

            case WatcherChangeTypes.Renamed:
                if (e.OldPath.ParentPath == path)
                {
                    if (e.NewPath.ParentPath == path)
                    {
                        RaiseChanged(e);
                    }
                    else
                    {
                        RaiseChanged(FileSystemChange.FromDeleted(e.OldPath));
                    }
                }
                else
                {
                    if (e.NewPath.ParentPath == path)
                    {
                        RaiseChanged(FileSystemChange.FromCreated(e.NewPath));
                    }
                }
                break;
            }
        }