First attempt at finding duplicate files. For now, and possible ever, this process will be a 'best effort' approach, so there will be false positives but this will most likely remain the case for the life of this program.

This commit is contained in:
Admin
2020-12-14 22:48:32 -06:00
parent 06b586d635
commit 95766b044f
5 changed files with 137 additions and 13 deletions
+52 -6
View File
@@ -77,17 +77,47 @@ namespace DataOrganizer
var db = new DB();
var p = GetProfileToCompare();
var f = GetFolderGroupToCompare();
var renames = new List<SnapshotComparsion.RenamedFile>();
ComparisionSnapshot = new Snapshot(db.GetFilesForProfileByFolderGroup(p.Id, f.Id), f);
var diff = ActiveSnapshot.Diff(ComparisionSnapshot);
foreach(var file in diff.NewFiles)
AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingInsert);
//foreach (var folder in ActiveSnapshot.Directories.Values)
//{
// if (ComparisionSnapshot.Directories.ContainsKey(folder.FullPath))
// {
// renames.AddRange(ActiveSnapshot.FindFileRenames(folder, ComparisionSnapshot.Directories[folder.FullPath]));
// }
//}
foreach (var file in diff.ModifiedFiles)
AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingUpdate);
//foreach (var rename in renames)
//{
// DiffViewTreeView.Nodes.Add($"From: {rename.From.Name}");
// DiffViewTreeView.Nodes.Add($"To: {rename.To.Name}");
//}
var dupCount = 0;
foreach (var file in diff.DeletedFiles)
AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingDelete);
foreach(var folder in ActiveSnapshot.TopLevelFolders.Keys)
{
foreach(var dup in ActiveSnapshot.FindDuplicates(ActiveSnapshot.Directories[folder]))
{
var node = new TreeNode($"{dup.File.Name} ({dup.Duplicates.Count})") { ToolTipText = dup.File.FullPath };
foreach(var d in dup.Duplicates)
{
node.Nodes.Add(new TreeNode(d.Name) { ToolTipText = d.FullPath });
dupCount++;
}
DiffViewTreeView.Nodes.Add(node);
}
}
UpdateStatusLabel($"Found {dupCount} duplicate files.");
//foreach(var file in diff.NewFiles)
// AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingInsert);
//foreach (var file in diff.ModifiedFiles)
// AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingUpdate);
//foreach (var file in diff.DeletedFiles)
// AddFileSnapshotToDiffView(file, GetSelectedFolderGroup(), FileSnapshot.FileStatus.PendingDelete);
}
private void AddFileSnapshotToDiffView(FileSnapshot file, DB.FolderGroup folderGroup, FileSnapshot.FileStatus fileStatus = FileSnapshot.FileStatus.None)
@@ -324,5 +354,21 @@ namespace DataOrganizer
StatusLabel.Text = message;
statusStrip1.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{
var form = new FolderBrowserDialog();
if(form.ShowDialog() == DialogResult.OK)
{
textBox1.Text = form.SelectedPath;
}
}
private void button2_Click(object sender, EventArgs e)
{
//Compare
}
}
}