Graeme_Grant
Это очень популярный читатель метаданных и писатель, а не только для MP3-файлов: GitHub - mono/taglib-sharp: библиотека для чтения и записи метаданных в медиафайлы[^]
Просто дал lib попробовать. Вот мой тестовый код, используемый:
private static void Main(string[] args)
{
var path = @"E:\Music";
foreach (var file in System.IO.Directory.GetFiles(path))
{
ProcessFile(file);
}
Console.ReadKey();
}
static void ProcessFile(string Filename)
{
Console.WriteLine("Filename: ", Filename);
TagLib.File file = TagLib.File.Create(Filename);
Console.WriteLine("Name: ", file.Name);
Console.WriteLine("Current picture count: " + file.Tag.Pictures.Length);
for (int i = 0; i < file.Tag.Pictures.Length; i++)
{
var pic = file.Tag.Pictures[i];
Console.WriteLine("{0} Description: {1} / {2}", i + 1, pic.Description, pic.Type);
}
}
Обновление:
Вот рекурсивный каталог добавлен:
internal static class Program
{
private static void Main(string[] args)
{
var path = @"E:\music";
ProcessDirectories(path);
Console.ReadKey();
}
private static void ProcessDirectories(string startPath)
{
foreach (string dir in System.IO.Directory.GetDirectories(startPath))
{
Console.WriteLine("Dir: {0}", dir);
ProcessFiles(dir);
ProcessDirectories(dir);
}
}
private static void ProcessFiles(string dir)
{
foreach (var file in System.IO.Directory.GetFiles(dir))
{
if (System.IO.Path.GetExtension(file).Equals(".mp3", StringComparison.InvariantCultureIgnoreCase))
{
ProcessFile(file);
}
}
}
private static void ProcessFile(string Filename)
{
// do processing here...
Console.WriteLine(" - File: {0}", Filename);
TagLib.File file = TagLib.File.Create(Filename);
Console.WriteLine(" Name: ", file.Name);
Console.WriteLine(" Picture count: " + file.Tag.Pictures.Length);
for (int i = 0; i < file.Tag.Pictures.Length; i++)
{
var pic = file.Tag.Pictures[i];
Console.WriteLine(" {0} Description: {1} / {2}", i + 1, pic.Description, pic.Type);
}
}
}
Member 13337539
извиняюсь. он еще недостаточно проснулся. Я думал, что комментирую какой-то код, который только что видел. У меня есть, скажем, 100 папок mp3-файлов, уже помеченных хорошо. Но не помеченный w image art. Однако в каждой папке есть изображение с именем "folder.jpg" таким образом, мне нужно рекурсивно искать через ^0GB или около того папок и применять folder.jpg изображение для всех аудиофайлов в этой папке в качестве тега, а затем двигаться дальше. Спасибо за совет до сих пор ... длинные выходные, длинный день. Посмотрю на это ж свежими глазами завтра, кодировал весь день.