Я использую taglib# для ввода названия mp3 и имен исполнителей в виде метаданных, проанализированных из имен файлов. Для этого я, по сути, перебираю список имен файлов, анализирую имена, создаю файл taglib, изменяю теги, затем сохраняю и уничтожаю файл taglib. Как ни странно, в моих обстоятельствах я заметил, что существует максимальная длина строк, которые теги могут принимать в качестве входных данных после успешного изменения первого файла.
Вот небольшой пример, который я использую сейчас.
foreach (string path in files)
{
using (TagLib.File f = TagLib.File.Create(path))
{
f.Tag.Title = "000000000011111111112222222222333333333344444444445555555555"
f.Save();
}
}
На выходе первый затронутый файл имеет правильное поле заголовка:
000000000011111111112222222222333333333344444444445555555555
Но каждый файл после него имеет только часть:
000000000011111111112222222222
Вы можете увидеть это в проводнике:
Результаты одинаковы независимо от того, какое поле было изменено. Кроме того, явный вызов Dispose() для файла taglib ничего не меняет. Почему это могло быть?