Exemplo n.º 1
0
        public ComparisonProgress(string sourceFile, string destinationFile)
            : this()
        {
            var fileInfo = new FileCompareInfo();

            if (!ValidFile(sourceFile) && !ValidFile(destinationFile))
            {
                fileInfo.ComparePathType = PathType.Directory;
            }
            else
            {
                if (ValidFile(sourceFile) || ValidFile(destinationFile))
                {
                    fileInfo.ComparePathType = PathType.File;
                }
            }

            ComparisonPathType = fileInfo.ComparePathType;

            fileInfo.SourceFile      = sourceFile;
            fileInfo.DestinationFile = destinationFile;

            sourceDiffList      = null;
            destinationDiffList = null;

            txtPath1.Text = sourceFile;
            txtPath2.Text = destinationFile;

            backgroundWorkerDifference.RunWorkerAsync(fileInfo);
        }
Exemplo n.º 2
0
        public ComparisonProgress
        (
            List <CompareItem> listViewItems1,
            List <CompareItem> listViewItems2,
            string sourceFile,
            string destinationFile

        )
            : this()
        {
            var fileInfo = new FileCompareInfo();

            fileInfo.ComparePathType = PathType.ListItems;

            ComparisonPathType = fileInfo.ComparePathType;

            fileInfo.ListViewItems1 = listViewItems1;
            fileInfo.ListViewItems2 = listViewItems2;

            sourceDiffList      = null;
            destinationDiffList = null;

            txtPath1.Text = sourceFile;
            txtPath2.Text = destinationFile;

            backgroundWorkerDifference.RunWorkerAsync(fileInfo);
        }
Exemplo n.º 3
0
        private void FindDuplicates(FileCompareInfo file, int startIndex)
        {
            for (int i = startIndex; i < lib.Count; i++)
            {
                FileCompareInfo nextFile = lib[i];

                if (!nextFile.Checked &&
                    ((rdobtnCompareChecksum.Checked && file.Checksum.Equals(nextFile.Checksum)) ||
                     rdobtnCompareSize.Checked && file.Size == nextFile.Size))
                {
                    file.Duplicates.AddLast(nextFile.FilePath);
                    nextFile.Checked = true;
                }
            }
        }
Exemplo n.º 4
0
        private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            Invoke(smDelegate, $"Building library...");
            BuildLibrary(txtFolder.Text);

            if (rdobtnCompareChecksum.Checked)
            {
                CalculateChecksums();
            }

            Invoke(raspvDelegate, lib.Count);

            for (int i = 0; i < lib.Count; i++)
            {
                FileCompareInfo file = lib[i];

                Invoke(smDelegate, $"Checking file '{file.FileName}...\n");

                FindDuplicates(file, i + 1);

                if (file.Duplicates.Count > 0)
                {
                    Invoke(atDelegate, $"{file.FilePath}\n");

                    if (file.Duplicates.Count > 0)
                    {
                        foreach (string duplicate in file.Duplicates)
                        {
                            Invoke(atDelegate, $"\t{duplicate}\n");
                        }
                    }
                }

                Invoke(ppsDelegate);
            }
        }