示例#1
0
        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";
            }
        }