private void AdvancedDuplicateScan(object sender, EventArgs e) { CheckingFilesForm CFF = new CheckingFilesForm(); CFF.progressBar1.Value = 0; CFF.progressBar2.Maximum = Library.Tracks.Count; CFF.label1.Text = "Checking..."; Hashtable deleted = new Hashtable(); Hashtable files = new Hashtable(); CFF.Show(); foreach (IITFileOrCDTrack track in Library.Tracks) { CFF.label1.Text = "Checking " + track.Name + "..."; if (string.IsNullOrEmpty(track.Location)) { continue; } if (files.ContainsKey(track.Location)) { track.Delete(); deleted[track] = track; } else { CFF.progressBar1.Value = 0; CFF.progressBar1.Maximum = files.Count; foreach (IITFileOrCDTrack _track in files.Values) { CFF.progressBar1.Value++; CFF.label1.Text = "Checking '" + track.Name + "'Against " + _track.Name; try { if (_track.Name == track.Name) { if (_track.Duration == track.Duration) { if (_track.Album == track.Album) { if (_track.Artist == track.Artist) { if (_track.Genre == track.Genre) { track.Delete(); CFF.label1.Text = "Deleting " + track.Name; } else { files[track.Location] = track; } } else { files[track.Location] = track; } } else { files[track.Location] = track; } } else { files[track.Location] = track; } } else { files[track.Location] = track; } } catch (Exception ex) { } } } CFF.progressBar2.Value++; } string results = ""; foreach (IITFileOrCDTrack track in deleted) { results += "Deleted track " + track.Name + " from " + track.Location + "\r\n"; } MessageBox.Show("Deleted " + deleted.Count + " track(s)\r\n" + results); }
private void AdvancedDuplicateScan(object sender, EventArgs e) { CheckingFilesForm CFF = new CheckingFilesForm(); CFF.progressBar1.Value = 0; CFF.progressBar2.Maximum = Library.Tracks.Count; CFF.label1.Text = "Checking..."; Hashtable deleted = new Hashtable(); Hashtable files = new Hashtable(); CFF.Show(); foreach (IITFileOrCDTrack track in Library.Tracks) { CFF.label1.Text = "Checking " + track.Name + "..."; if (string.IsNullOrEmpty(track.Location)) continue; if (files.ContainsKey(track.Location)) { track.Delete(); deleted[track] = track; } else { CFF.progressBar1.Value = 0; CFF.progressBar1.Maximum = files.Count; foreach (IITFileOrCDTrack _track in files.Values) { CFF.progressBar1.Value++; CFF.label1.Text = "Checking '" + track.Name + "'Against " + _track.Name; try { if (_track.Name == track.Name) { if (_track.Duration == track.Duration) { if (_track.Album == track.Album) { if (_track.Artist == track.Artist) { if (_track.Genre == track.Genre) { track.Delete(); CFF.label1.Text = "Deleting " + track.Name; } else files[track.Location] = track; } else files[track.Location] = track; } else files[track.Location] = track; } else files[track.Location] = track; } else files[track.Location] = track; } catch (Exception ex) { } } } CFF.progressBar2.Value++; } string results = ""; foreach (IITFileOrCDTrack track in deleted) results += "Deleted track " + track.Name + " from " + track.Location + "\r\n"; MessageBox.Show("Deleted " + deleted.Count + " track(s)\r\n" + results); }