Sie müssen alle Dateien im Verzeichnis durchsuchen und prüfen, ob sie alle das gewünschte Genre haben.
Dafür können Sie einige LINQ verwenden:
string genre = "Hip-Hop, Rock"; // Change as required... You can also provide a single genre or even more than 2.
var matchingFiles = Directory.GetFiles(@"Folder\SubFolder", "*.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.Move(f, Path.Combine(@"D:\NewFolder", new FileInfo(f).Name));
}
Ich möchte auch, dass darauf hinweisen, wenn die Datei mehrere Genres hat, können Sie auch die Kriterien alle Dateien auszuwählen, die enthalten, dass Genre:
var matchingFiles = Directory.GetFiles(@"Folder\SubFolder", "*.mp3", SearchOption.AllDirectories).Where(x => { var f = TagLib.File.Create(x); return ((TagLib.Id3v2.Tag) f.GetTag(TagTypes.Id3v2)).Genres.Contains(genre); });
Die obige wäre zum Beispiel, wählen Sie Dateien mit den folgenden Gattungen, wenn genre
-Hip-Hop
gesetzt:
Hip-Hop
Hip-Hop, Rock
Hip-Hop, Trap
Hip-Hop, Rock, Punk, Trap
Die obige Reihe von Genres ist offensichtlich nicht realistisch. Es ist nur ein Beispiel :)