Exemple #1
0
        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);
        }
Exemple #2
0
 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);
 }