internal void UpdateState(string directory, ref FileChangeList changes, ref FileSystemEntry file) { int index = _state.IndexOf(directory, file.FileName); if (index == -1) // file added { string path = file.FileName.ToString(); changes.AddAdded(directory, path.ToString()); var newFileState = new FileState(directory, path); newFileState.LastWriteTimeUtc = file.LastWriteTimeUtc; newFileState.Length = file.Length; newFileState._version = _version; _state.Add(directory, path, newFileState); return; } _state.Values[index]._version = _version; FileState previousState = _state.Values[index]; if (file.LastWriteTimeUtc != previousState.LastWriteTimeUtc || file.Length != previousState.Length) { changes.AddChanged(directory, previousState.Path); _state.Values[index].LastWriteTimeUtc = file.LastWriteTimeUtc; _state.Values[index].Length = file.Length; } }