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:
@@ -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
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user