Mirroring a file system with a database

Not sure which forum section to put this in, it's not really Juce related and it's a total long shot ...

I have a synth app which has a lot of factory and/or user generated synth patches and samples.  I'd like to offer a UI view where users can can browse, search and filter files based on their metadata (eg. the BPM of a sample, or genre/type/style for a synth patch, that sort of thing).

The potential number of files would mean that trawling every directory each time wouldn't be advisable, so I'm thinking that I need some sort of database which mirrors the file structure.  It would also have to respond to changes from 'outside' the system (eg. a user dumping a load of their sample files via Explorer), so it would either need to lazily trawl directories in the background or somehow get notifications from the file system about changes.

Has anyone ever done this, got any advice to offer or a library which might help?  I'm aware of SQLite to do the database side, although I've never used it and I don't know if it's overkill.