Как насчет Sqlite ? Это будет соответствовать вашим потребностям, я уверен, плюс, это общественное достояние. Также есть привязки для разных языков. См. здесь для интерфейса Delphi для Sqlite.
Редактировать: после комментария zebrabox - Вы можете создать простую таблицу для идентификации различных ресурсов и путей ... что-то вроде этого
CREATE TABLE "BlobId" (
"BLOB_TYPE" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE "BlobInfo" (
"BlobInfo_Id" INTEGER PRIMARY KEY NOT NULL,
"BlobInfo_Date" TEXT NOT NULL,
"BlobInfoPath" TEXT NOT NULL
);
BlobId
таблица будет иметь значения 1 для изображения, 2 для аудио, 3 для видео и будет логически связана с BlobInfo
таблицей
BlobInfo
1, 2010-02-13 04:05:40 C:\Blobs\SomeImage1.jpg
1, 2010-02-13 04:05:40 C:\Blobs\SomeImage2.jpg
2, 2010-02-13 04:05:40 C:\Blobs\SomeSound.wav
3, 2010-02-13 04:05:40 C:\Blobs\SomeVide.mp3
Использование Sqliteman, который является интерфейсом Sqlite Manager GUI для администрирования баз данных Sqlite, облегчит работу. На вас лежит обязанность убедиться, что путь достаточно гибкий, чтобы его можно было перемещать вместе с базой данных.
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.