void OnDeleted(object sender, FileSystemEventArgs e) { var path = GetVirtualPath(e.FullPath); if (path.IsDirectory) { directoryNameSet.Remove(path.EntityName); } RaiseChanged(FileSystemChange.FromDeleted(path)); }
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; } }