Используя taglib-sharp и OleDb, я пытаюсь проиндексировать папку музыкальных файлов и сохранить все метаданные из указанных файлов в базе данных Access (возможно, я переключусь на SQL Compact или что-то позднее, но у меня есть книгаиспользует доступ).Приведенный ниже код должен извлекать и хранить метаданные первых 1000 файлов в заданной папке и подпапках
OleDbCommand cmd = con.CreateCommand();
DirSearch(@"C:\Users\Stephen\Music");
TagLib.File tagFil;
for (int i = 0; i < 1000; i++)
{
tagFil = TagLib.File.Create(filesFound[i]);
string album = tagFil.Tag.Album;
string artist = tagFil.Tag.FirstPerformer;
string title = tagFil.Tag.Title;
if (album == null)
album = "Unknown Album";
if (artist == null)
artist = "Unknown Artist";
if (title == null)
title = "Unknown Track";
cmd.CommandText = "INSERT INTO Track (Title,Artist,Album,Path) VALUES ('" + title + "','" + artist + "','" + album + "','" + filesFound[i] + "')";
cmd.ExecuteNonQuery();
}
Однако проблема возникает, когда один из тегов имеет квадратную скобку в заголовке.Я понимаю, почему это может вызвать проблему, но не то, как ее решить / избежать.Я пробовал строковые литералы и т. Д., Но не мог видеть, как они будут работать (они не: /).Есть идеи получше?