public TreeFile(UpdateFile uf, ReadOnlyCollection <string> updateFiles, string newBasePath) { FullPath = uf.RelativePath.Replace('/', '\\'); Size = uf.Length; if (!updateFiles.Contains(Path.Combine(newBasePath, uf.RelativePath), StringComparer.OrdinalIgnoreCase)) { State = (int)FileState.Deleted; } else if (uf.Matches(newBasePath)) { State = (int)FileState.Identical; } else { State = (int)FileState.Changed; } }