Dizindeki tüm dosyaları incelemeniz ve her birinin gerekli türe sahip olup olmadığını kontrol etmeniz gerekir. Bunun için
, bazı LINQ kullanabilirsiniz:
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));
}
Ben de dosya birden türler varsa, hatta içeren tüm dosyaları seçmek için kriterleri ayarlayabilirsiniz işaret etmek istiyorum tür:
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); });
yukarıda olur, genre
Hip-Hop
olarak ayarlanır aşağıdaki türler ile örneğin, dosyaları seçin:
Hip-Hop
Hip-Hop, Rock
Hip-Hop, Trap
Hip-Hop, Rock, Punk, Trap
Yukarıdaki türler açıkça gerçekçi değildir. Sadece bir örnek var :)