MP3 TagLib搜索和复制问题

时间:2016-08-28 19:41:14

标签: taglib-sharp

向大家致以问候。 我的问题是:

  • 我需要搜索包含MP3文件的用户所选文件夹,并检查哪些文件包含或包含指定的标记。如果是,我会将其复制到指定的文件夹。我设法做了一些事情,但只是部分做了,例如,我设法复制流派“Pop”文件,而不是“Blues”文件。

包含 工作是一场彻头彻尾的噩梦,无法让它发挥作用。

代码:

try
{
    FolderBrowserDialog folder = new FolderBrowserDialog();
    DialogResult result = folder.ShowDialog();
    string genre = "Blues";
    var matchingFiles = Directory.GetFiles(folder.SelectedPath, "*.mp3", SearchOption.AllDirectories).Where(x => 
    {
        var f = TagLib.File.Create(x);
        return (((TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2)).JoinedGenres == genre);
    });                    
    foreach (string f in matchingFiles)
    {
        System.IO.File.Copy(f, Path.Combine(@"destinationFolder", new FileInfo(f).Name));
    }
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

欢迎任何帮助。

问题解决了:

try
            {
                FolderBrowserDialog folder = new FolderBrowserDialog();
                DialogResult result = folder.ShowDialog();
                string upit = search.Text;
                var matchingFiles = Directory.GetFiles(folder.SelectedPath, "*.mp3", SearchOption.AllDirectories).Where(x =>
                    {
                    var f = TagLib.File.Create(x);
                    return (((TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2)).Comment != null && ((TagLib.Id3v2.Tag)f.GetTag(TagTypes.Id3v2)).Comment.Contains(upit));
                    }
                );
                foreach (string f in matchingFiles)
                {
                    System.IO.File.Copy(f, Path.Combine(path, new FileInfo(f).Name));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
            }

0 个答案:

没有答案