1

皆様、はじめまして。私の問題は次のとおりです。

  • ユーザーが選択した MP3 ファイルを含むフォルダーを検索し、指定したタグが含まれているファイルを確認する必要があります。もしそうなら、私はそれを指定されたフォルダにコピーします。私は何かをすることができましたが、部分的にしかできませんでした。たとえば、ジャンル「ポップ」ファイルはコピーできましたが、「ブルース」ファイルはコピーできませんでした。

コンテナを機能させること完全な悪夢であり、まったく機能させることはできません。

コード:

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);
            }
4

0 に答える 0