private void Init() { foreach (var profile in Profiles) { DirectoryInfo di = new DirectoryInfo(profile.SourcePath); var files = di.GetFiles("*.ini"); byte installedCount = 0; byte updateCount = 0; profile.ListView.BeginUpdate(); profile.ListView.Items.Clear(); foreach (var fileInfo in files) { ListViewItem item = new ListViewItem { Text = Path.GetFileNameWithoutExtension(fileInfo.Name), Tag = fileInfo }; var targetFile = $"{profile.TargetPath}{Path.DirectorySeparatorChar}{fileInfo.Name}"; FileInfo targetFileInfo = new FileInfo(targetFile); if (targetFileInfo.Exists) { installedCount++; if (targetFileInfo.Length != fileInfo.Length || !StaticObjects.GetHashSha256(targetFileInfo.FullName).SequenceEqual(StaticObjects.GetHashSha256(fileInfo.FullName))) //if (targetFileInfo.Length != fileInfo.Length || targetFileInfo.LastWriteTime != fileInfo.LastWriteTime) { item.ForeColor = Color.Red; item.Checked = true; updateCount++; } else { item.ForeColor = Color.Green; } } else if (ReferenceEquals(profile.ListView, lvPrintProfiles)) { item.Checked = true; } profile.ListView.Items.Add(item); } profile.ListView.EndUpdate(); profile.LabelCount.Text = $"{updateCount} Update(s) | {installedCount} Installed | {profile.ListView.Items.Count} Profiles"; } }