How about Sqlite? That would be suited for your needs I'm sure, plus, it's public domain. There are bindings for different languages also. See here for the Delphi interface for Sqlite.
Edit: after zebrabox's comment - You can create a simple table to identify different resources and paths...something like this
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
table would have the values 1 for Image, 2 for Audio, 3 for Video, and it would be logically linked to BlobInfo
table
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
By using Sqliteman which is the Sqlite Manager GUI front-end for administering the Sqlite databases, will make the job easier. The onus is on you to make sure that the path is flexible enough to be moved in conjunction with the database.
Hope this helps,
Best regards,
Tom.